2010-07-25 5 views
7

En utilisant CakePHP, j'ai créé élément de formulaire select-options avec:Pourquoi le premier élément du menu de sélection est-il toujours vide?

echo $form->select('items', $numeration , array('selected' => 0)); 

Il crée la boîte de sélection, mais la première option est toujours vide.

Comment puis-je me débarrasser de cette option vide? Je ne l'ai pas réussi à faire quoi que ce soit avec option showEmpty ...

s'il vous plaît aider .... : - ((

mise à jour:

code CakePHP

echo $form->select('myOptions', array(1 => 'a', 2 => 'b', 3 => 'c'), array('empty'=>false)); 

crée HTML suivant :

<select id="myOptions" name="data[myOptions]"> 
<option selected="selected" value=""></option> 
<option value="1">a</option> 
<option value="2">b</option> 
<option value="3">c</option> 
</select> 

ce qui ne va pas, et pourquoi ai-je vide el ement ?!

+0

Est-ce que '$ numeration' a un élément vide? Faites un 'debug' pour être sûr. –

+0

non, la numération de tableau est créée juste avant que j'ajoute le premier élément dedans – user198003

+0

Est-ce que le tableau $ numeration a réellement un élément 0? – Leo

Répondre

11

Il est préférable d'utiliser:

$this->Form->input('items', array('options'=>$numeration)); 

Par défaut, il est sans élément vide. mais pour forcer utiliser pleinement

$this->Form->input('items', array('empty'=>false, 'options'=>$numeration)); 
+0

pouvez-vous s'il vous plaît vérifier, j'ai mis à jour ma question avec l'exemple .... – user198003

10

Selon le docs, le troisième argument est l'élément par défaut à sélectionner. Si vous ne voulez pas une option vide apparaît changer votre code:

echo $form->select('items', $numeration , NULL, array('empty' => false)); 
+0

Cookbook cookbook [sélectionnez la documentation] (http://book.cakephp.org/view/1430/select) – webkraller

2

Cela fonctionne sous 2.3:

$options = array('0'=>'Zero','1'=>'One'); 
echo $this->Form->select('field-name',$options,array('empty'=>false)); 
0

Je sais c'est une vieille question, mais, si vous rencontrez des problèmes avec CakePHP 1.2 (oui, je sais il aspire à utiliser une telle ancienne version), la manière correcte est:

$form->select(string $fieldName, array $options, mixed $selected, array $attributes, boolean $showEmpty) 

http://book.cakephp.org/1.2/en/The-Manual/Core-Helpers/Form.html#select

Questions connexes