Se ti riferisci a quel return false, serve ad evitare che il browser esegua l’evento onclick e si fermi alla gestione scritta con jquery. Senza quel return false, ti invito a provare per avere conferma, il browser dovrebbe aprire la pagina ‘#’.
, sappi che serve per dire ad yii che vuoi registrare del codice javascript. Si preoccuparerà lui di metterlo nella pagina finale. Prova a guardare il codice html generato di questo documento. Aiuta a capire molte cose.
public CClientScript registerScript(string $id, string $script, integer $position=4)
L’id credo sia più utile a chi legge il codice che ad altro.
Lo script è … il codice js.
La posizione invece è importante: in base a quel valore, il tuo script viene posizionato in parti diverse del documento renderizzato. Consiglio caldamente di posizionare tutto alla fine della pagina salvo in casi eccezionali.
Il ID viene usato internalmente come indice per il array dove si tengono tutti i script prima che la pagina viene generatta… per questo deve essere unica…
se fai un altro call ad registerScript() con lo stesso ID e JS codice differente… il primo codice lo perdi e non vera generato nella pagina finalle…
Per quanto si tratta della seconda parte li si chiama il metodo che aggiorna la grid… questo metodo si trova nel file jquery.yiigridview.js… come parametro viene mandato un JSON array che contiene tutti i datti della forma di ricerca "data: $(this).serialize()"… il metodo yiiGridView.update() fa un ajax call usando questi dati come parametri… ed e cosi che nel controller ricevi il $_POST con i datti scritti nel form.
Si grazie. Ho anche provato ad eliminare questa seconda parte per vedere cosa succedeva e ho notato che la griglia continuava a funzionare, ma ogni volta veniva ricaricata tutta la pagina. Invece con quello spezzone di codice, vengono aggiornati solo i dati all’interno della griglia.