web-dev-qa-db-fra.com

Zend Framework - Définissez la valeur 'sélectionnée' dans la liste déroulante des cases à cocher

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é".

19
Tom

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.
50
Tom
$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..

29
Tony

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,
        ),
    ));
5
Ben

je pense que cela devrait fonctionner:

$form->setDefault('user', 'value'); // Set default value for element
1
opHASnoNAME

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>);
0
Yazid Erman

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.

0
Gokul Shinde

Pour définir les valeurs par défaut, vous pouvez essayer à la fois setDefault ou peupler.

$form->populate( $array_keypair_values );

0
Nuar Haruha