La comunità italiana su CakePHP

You are not logged in. Please login or register.


Pages: 1

Atom RSS

Posts [ 4 ]

by_spix

Topic: sull'onchange di una form il post resta sempre indietro di un giro

Ciao a tutti, scusate se disturbo per questa cosa ma non riesco a spiegarmela.
Ho la necessità di passare un parametro in una vista tramite una combo senza però il submit, ossia nel momento che cambio valore nella option si rigenera la pagina con il nuovo parametro.
Non capisco perchè il parametro che gli passa resta sempre un giro indietro.
Prima posto il codice che è meglio, controller:

class GamesPlayersController extends AppController {
    var $name = 'GamesPlayers';
        function index($id=2) {
        $this->set('partite', $this->GamesPlayer->Game->find('all',array( 'order'=>'data ASC' ) ) );
    $this->set('GamesPlayers', $this->GamesPlayer->find('all',array('conditions' => array('game_id' => $id))));
        }
...
}

la vista

<h1>Gestione delle partite</h1>
<p><?php echo $html->link('Aggiungi giocatore alla partita', '/games_players/add'); echo"</p>";
$partita="";
 for ($i=0;$i<sizeof($partite);$i++)
 {
    if (($i)==count($partite)-1) { $finearray= "";}else {$finearray= " , ";}
    $partita .= $partite[$i]['Game']['id']." => '".$partite[$i]['Game']['data']."'".$finearray;
 }   
 eval("\$chiave_partite= array (".$partita.");");
// con questo print_f visualizzo il valore corretto
print_r($this->data['GamesPlayer']['partita']);

echo $form->create('GamesPlayer',array('action'=>'index/'.$this->data['GamesPlayer']['partita'],'name' => 'gamesel','id'=>'gamesel'));
echo $form->input('partita', array('options' => $chiave_partite ,'onchange'=>'javascript: document.gamesel.submit();','empty' => '(scegli una partita)','label'=>'Vedi altre partite'));
echo "</form>";
 ?>

Ok come vedete imposto di default nel controller il parametro $id=2 poi nella vista la combo dovrebbe generarmi http://localhost/games_players/index/[valore del parametro] invece 'action'=>'index/'.$this->data['GamesPlayer']['partita'] considera sempre il penultimo valore che ho scelto, anche se il print_r($this->data['GamesPlayer']['partita']) me lo da giusto. Sapreste risolvermi questo mistero?sad

by_spix

Re: sull'onchange di una form il post resta sempre indietro di un giro

nessun suggerimento?
noto ad esempio nel controller dump questa variabile

 [action] => index
    [params] => Array
        (
            [pass] => Array
                (
                    [0] => 3
                )

ma 3 è il valore che gli ho passato nella scelta precedente, l'ultima infatti è

 [data] => Array
                (
                    [GamesPlayer] => Array
                        (
                            [partita] => 2
                        )

                )

hmm

Saiborg

Re: sull'onchange di una form il post resta sempre indietro di un giro

Ti sei più o meno risposto da solo smile
Per come hai definito la action index del controller rimani appunto sempre un passo indietro perché prendi il parametro di ricerca dall'url e non dai dati passati effettivamente dal form.

In pratica succede che:
...
1- Selezioni id1 dalla combo
2- Viene renderizzata la view impostando form action="/index/id1"
3- Selezioni id2 dalla combo
4- Viene renderizzata la view, mostrando i dati relativi a id1 (perché la action del form è /index/id1!) e impostando form action="/index/id2"
5- Selezioni id3
6- Mostra i dati di id2 e crea un form con action /index/id3
....
e avanti così.

Nel controller invece prova a usare $this->data['GamesPlayer']['partita'] invece di $id

 $this->set('GamesPlayers', $this->GamesPlayer->find('all',array('conditions' => array('game_id' => [b]$this->data['GamesPlayer']['partita'][/b]))));
        }

by_spix

Re: sull'onchange di una form il post resta sempre indietro di un giro

Infatti !! wink
È dovuto credo alla poca chiarezza che ho tra controller e vista.
Grazie Saiborg

Posts [ 4 ]

Guest posting is disabled. You must login or register to post a reply.

Pages: 1

Topic info

0 guests and 0 users are reading this topic now


Forum quick jump menu

Currently used extensions: pun_topic_online_users, pun_karma, pun_admin_hook_navigator, pun_bbcode. Copyright © 2008 PunBB

[ Generated in 0.047 seconds, 13 queries executed ]