Вот фрагмент моего php-кода, связанный с созданием выпадающего списка:
$s_t = array(
"key1" => "value1",
"key2" => 'value2',
"key3" => 'value3');
$default_select = "value2";
$attr = array("id" => "name");
$form->addElement('select','name',"Choose your option:",$s_t, $attr);
Как сделать выбранный по умолчанию элемент в списке, согласно $default_select
значение?
(когда пользователь загрузит страницу, он увидит, что значение $ default_select уже выбрано в выпадающем списке)
Видя твой код, я думаю, ты в контроллере.
Чтобы создать элемент select, вы должны сделать это:
$s_t = array(
"key1" => "value1",
"key2" => 'value2',
"key3" => 'value3');
$form->addElement('select','name');
$form->getElement('name')->setLabel('Choose your option:')
->addMultiOptions($s_t);
Или с одной инструкцией:
$form->addElement('select','name', array('label'=>'Choose your option:',
'MultiOptions' => $s_t));
Это тот же принцип, если вы находитесь в форме класса.
Чтобы ввести значение по умолчанию, вы должны использовать ключ, поэтому, если у вас есть только значение, вы можете сделать это:
$default_select = "value2";
$form->getElement('name')->setValue(array_search($default_select, $s_t));
Надеюсь, это поможет вам.
Использовать этот
$default_select = "value2";
$form->setValue($default_select);
Простота использования.
$form->setValue($default_select);
$ default_select — должна быть опция «ключ», а не «значение»
Вот мое решение:
$s_t = array(
"key1" => "value1",
"key2" => 'value2',
"key3" => 'value3');
$default_select = "value2";
$attr = array("id" => "name");
$element = $form->createElement('select','name',"Choose your option:",$s_t, $attr);
$element->setValue($default_key);
$form->addElement($element);