web-dev-qa-db-de.com

Zend Framework - Setzen Sie den 'ausgewählten' Wert in der Dropdown-Liste der Auswahlbox

Ich füge ein select-Element wie folgt zu einer Zend_Form-Instanz hinzu:

  $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);
        }

Ich habe in den Dokumenten gesucht, finde aber keine einfache Möglichkeit, eine Option des select-Elements auf 'selected' zu setzen.

19
Tom

Ich habe gerade herausgefunden, wie es geht.

Sie müssen die setValue () -Methode des Elements verwenden:

$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',
        ),
    )
);

Wie oben können Sie 'value' => 'blue' verwenden, um 'blue' => 'Bleu' auszuwählen. 

Ich hoffe, dies wird dir helfen..

29
Tony

Setzen Sie in Zend Framework 2 das Attribut 'value'. Um beispielsweise die Auswahl auf "Ja" zu setzen:

    $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

ich denke, das sollte funktionieren:

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

Die genannten Lösungen funktionieren für Zend Framework 2 nicht. Für diejenigen, die Zf2 verwenden, empfehle ich die Verwendung der folgenden Anweisung, um einen Standardwert festzulegen:

    $formX->get('<Select element Name>')->setValue(<the id of the selected item>);
0
Yazid Erman

Ich versuche einfach, dem folgenden Code zu folgen, um den Dropdown-Wert als vom Controller ausgewählt anzuzeigen, und es funktioniert einwandfrei.

$ user-> setValue ($ value); // $ value ist der 'Wert' von und $ user ist das Element von von.

0
Gokul Shinde

Um Standardwerte festzulegen, können Sie sowohl setDefault als auch populate verwenden

$form->populate( $array_keypair_values );

0
Nuar Haruha