Я добавляю элемент select к экземпляру Zend_Form следующим образом:
$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); }
Я искал документы, но не могу найти простой способ предварительной настройки опции select на «selected».
Я только что разработал, как это сделать.
Вы должны использовать метод setValue () элемента:
$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', ), ) );
Как и выше, вы можете использовать 'value' => 'blue' для выбора 'blue' => 'Bleu'.
Я надеюсь, что это поможет вам..
В Zend Framework 2 задайте атрибут value. Например, по умолчанию выберите «Да»:
$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, ), ));
Я думаю, что это должно сработать:
$form->setDefault('user', 'value'); // Set default value for element
Чтобы установить значения по умолчанию, вы можете попробовать установить setDefault или заполнить
$form->populate( $array_keypair_values );
Я просто пробую следующий код, чтобы показать выпадающее значение, выбранное из контроллера, и оно работает нормально.
$ User-> SetValue ($ значение); // $ value – это значение 'value' и $ user является элементом from.
Указанные решения не будут работать для Zend Framework 2, для тех, кто использует Zf2, я предлагаю использовать следующую команду для установки значения по умолчанию:
$formX->get('<Select element Name>')->setValue(<the id of the selected item>);