J'ajoute un élément select à une instance de Zend_Form comme suit:
$user = $form->createElement('select','user')->setLabel('User: ')->setRequired(true);
foreach($users as $u)
{
if($selected == $u->id)
{
$user->addMultiOption($u->id,$u->firstname.' '.$u->lastname);
//*** some way of setting a selected option? selected="selected"
}
else
$user->addMultiOption($u->id,$u->firstname.' '.$u->lastname);
}
J'ai effectué des recherches dans la documentation mais je ne trouve pas de moyen simple de prérégler une option de l'élément sélectionné sur "sélectionné".
Je viens juste de savoir comment le faire.
Vous devez utiliser la méthode setValue () de l'élément:
$user = $form->createElement('select','user')->setLabel('User: ')->setRequired(true);
foreach($users as $u)
$user->addMultiOption($u->id,$u->firstname.' '.$u->lastname);
$user->setValue($selected); //$selected is the 'value' of the <option> that you want to apply selected="selected" to.
$form->addElement('select','foo',
array(
'label' => 'ComboBox (select)',
'value' => 'blue',
'multiOptions' => array(
'red' => 'Rouge',
'blue' => 'Bleu',
'white' => 'Blanc',
),
)
);
Comme ci-dessus, vous pouvez utiliser 'valeur' => 'bleu' pour rendre 'bleu' => 'Bleu' sélectionné.
J'espère que cela t'aidera..
Dans Zend Framework 2, définissez l'attribut 'value'. Par exemple, sélectionnez par défaut la valeur "Oui":
$this->add( array(
'name' => 'isFlexible',
'type' => 'Select',
'options' => array(
'label' => 'Is it flexible?'
,'label_attributes' => array( 'placement' => 'APPEND')
,'value_options' => array(
'' => 'Select Below',
'0' => 'No',
'1' => 'Yes',
'2' => 'N/A',
),
),
'attributes' => array(
'id' => 'is_flexible',
'value' => 1,
),
));
je pense que cela devrait fonctionner:
$form->setDefault('user', 'value'); // Set default value for element
Les solutions mentionnées ne fonctionneront pas pour Zend Framework 2. Pour ceux qui utilisent Zf2, je suggère d'utiliser l'instruction suivante pour définir une valeur par défaut
$formX->get('<Select element Name>')->setValue(<the id of the selected item>);
J'essaie juste de suivre le code pour afficher la valeur de la liste déroulante sélectionnée dans le contrôleur et cela fonctionne correctement.
$ user-> setValue ($ value); // $ valeur est la 'valeur' de et $ utilisateur est l'élément de from.
Pour définir les valeurs par défaut, vous pouvez essayer à la fois setDefault ou peupler.
$form->populate( $array_keypair_values );