2012-03-22 4 views
2

Ce code est à mon avis:CakePHP obtenir la valeur de dropdownlist

echo $this->Form->create('Chart'); 
echo $this->Form->input('username', 
     array('label'=>('Usernames List'), 
     'empty'=>('Select username'), 
     'options'=>$usernames, 'selected'=>false)); 
echo $this->Form->input('month', 
     array('label'=>('Month'), 
     'empty'=>('Select month'), 
     'options'=>$months, 'selected'=>false));?> 
echo $this->Form->input('year', 
     array('label'=>('Year'), 
     'empty'=>(date('Y')), 
     'options' => $years, 'selected'=>false)); 
echo $this->Form->end('Create Chart'); 

Et dans mon contrôleur j'essaie d'obtenir les valeurs des DropDownLists ci-dessus, voici mon code:

if (!empty($this->data)) { 
      $username = $this->data['Chart']['username']; 
      $month = $this->data['Chart']['month']; 
         $year = $this->data['Chart']['year']; 
     } 

Mais ce que j'obtiens dans les variables $ username, $ month et $ year est l'indice de l'élément dans la liste déroulante, au lieu de la valeur. Par exemple, si je sélectionne 2012 dans Année droddownlist, j'obtiens '0', mais ce dont j'ai besoin c'est '2012'.

Comment puis-je obtenir la valeur?

Répondre

2

Utilisez array_combine (doc here)

$usernames = array_combine($usernames, $usernames); 
... 
+0

Merci, ça marche! – myrmix

+0

Merci! Cela a bien fonctionné. – abbotto

0

donnent comme ce

$username = array('name1'=>'Name1','name2'=>'Name2'...); 
Questions connexes