Yii Framework Forum: Creare moduli "strani" con Yii - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Creare moduli "strani" con Yii Esperimenti nella creazione dei moduli Rate Topic: -----

#1 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 09 September 2010 - 10:37 AM

            <?php
                echo CHtml::beginForm(
                        array('ciao/mondo', 'ciao' => 'asdf', 'aaswdf', 'aw'),
                        'get',
                        array('id' => 'asd')
                );
            ?>
            <?php echo CHtml::textField('nome'); ?>
            <?php echo CHtml::endForm(); ?>


Sapete spiegarmi perchè questo codice genera
<form id="asd" action="/blog/index.php?r=ciao/mondo&amp;ciao=asdf&amp;0=aaswdf&amp;1=aw" method="get">
<div style="display:none">
<input type="hidden" value="ciao/mondo" name="r" /> 
<input type="hidden" value="asdf" name="ciao" />
<input type="hidden" value="aaswdf" name="0" />
<input type="hidden" value="aw" name="1" />
</div>
<input type="text" value="" name="nome" id="nome" />
</form>


mentre questo (cambio solo il metodo da GET a POST):
           <?php
                echo CHtml::beginForm(
                        array('ciao/mondo', 'ciao' => 'asdf', 'aaswdf', 'aw'),
                        'post',
                        array('id' => 'asd')
                );
            ?>
            <?php echo CHtml::textField('nome'); ?>
            <?php echo CHtml::endForm(); ?>


genera queest'altro codice?
<form id="asd" action="/blog/index.php?r=ciao/mondo&amp;ciao=asdf&amp;0=aaswdf&amp;1=aw" method="post">
<input type="text" value="" name="nome" id="nome" />
</form>

0

#2 User is offline   Nic Anji 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 37
  • Joined: 26-August 10
  • Location:Italy > Venice > Chioggia

Posted 10 September 2010 - 09:40 AM

Perchè usando il metodo GET è necessrio esplicitare sia i dati del form che i parametri utili a determinare il percorso di elaborazione del form in Yii.

Anche in questo caso, facciamo un passo indietro con la spiegazione.

Sia nel metodo POST che nel metodo GET hai la necessità di indicare l'URL dello script che elaborerà la richiesta e gli eventuali PARAMETRI da sottoscrivere.

Ora, il metodo GET ed il metodo POST gestiscono l'URL ed i PARAMETRI in maniera differente.

L'URL che vuoi richiamare è
/blog/index.php?r=ciao/mondo&amp;ciao=asdf&amp;0=aaswdf&amp;1=a


Col metodo POST funziona, col metodo GET no. Perchè?

Nel metodo POST tutto ciò che è stato specificato nell'attributo ACTION del FORM è considerato come l'URL. Nel metodo GET no: l'URL finisce a
/blog/index.php
Nel metodo GET tutto ciò che segue il punto interrogativo corrisponde alla lista dei parametri da inviare allo script. Quei parametri però vencono "costruiti" dal browser alla sottoscrizione del form e accodati allo script blog/index.php?.... (Il metodo GET funziona proprio così)

A Yii però servono i parametri che definiscono il controllore e l'azione, ecco perchè nel metodo GET bisogna "fissarli" con gli elementi nascosti del form. Così quando il browser "assemblerà" l'url da richiamare userà i parametri nascosti (oltre al resto del form).

In effetti, nella generazione automatica dei form in modalità GET, è totalmente inutile aggiungere i parametri che definiscono il percorso Yii all'interno di ACTION. Non capisco perchè non l'hanno rimossa come cosa.

Ti consiglio di fare qualche esperimento ;)
0

#3 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 10 September 2010 - 11:56 AM

Quello che non mi sembra corretto, è proprio il fatto che se sono in post ho le stesse variabili in campi hidden ed anche nel get. Io non ho detto di volerle sia nel get che nel post. Mi sembra scorretto che ci siano dei doppioni. Non trovi?
0

#4 User is offline   Nic Anji 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 37
  • Joined: 26-August 10
  • Location:Italy > Venice > Chioggia

Posted 10 September 2010 - 03:28 PM

View Postsensorario, on 10 September 2010 - 11:56 AM, said:

Quello che non mi sembra corretto, è proprio il fatto che se sono in post ho le stesse variabili in campi hidden ed anche nel get. Io non ho detto di volerle sia nel get che nel post. Mi sembra scorretto che ci siano dei doppioni. Non trovi?


Scusami, ma non ti seguo (sarà l'orario). Nel form generato in modalità POST non hai le variabili hidden.
0

#5 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 13 September 2010 - 08:40 AM

Il problema è nel get: appaiono sia nell'action che come campi hidden quindi sia come campi post che get.
0

#6 User is offline   Nic Anji 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 37
  • Joined: 26-August 10
  • Location:Italy > Venice > Chioggia

Posted 13 September 2010 - 09:07 AM

Si infatti :)
0

#7 User is offline   zaccaria 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 2,232
  • Joined: 04-October 09
  • Location:Moscow

Posted 22 September 2010 - 03:17 AM

Forse si tratta di qualche problema con i browser.

Puo' darsi che esistano browser che accettano solo l'url come get ed altri che accettano solo i campi hidden, per questo ci sono dei doppioni.

Nel caso del post non ci sono problemi: la roba specificata nell'url va in get, quella nei campi va in post.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users