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?![]()