我正在向Zend_Form实例添加一个select元素,如下所示:
$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”的简单方法。
答案 0 :(得分:50)
我刚刚研究过如何做到这一点。
您必须使用元素的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.
答案 1 :(得分:29)
$form->addElement('select','foo',
array(
'label' => 'ComboBox (select)',
'value' => 'blue',
'multiOptions' => array(
'red' => 'Rouge',
'blue' => 'Bleu',
'white' => 'Blanc',
),
)
);
如上所述,您可以使用'value'=&gt; 'blue'用于制作'blue'=&gt; 'Bleu'入选。
我希望这会对你有帮助..
答案 2 :(得分:5)
在Zend Framework 2中设置&#39;值&#39; attribue。例如,默认选择为&是;&#39;:
$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,
),
));
答案 3 :(得分:1)
我认为这应该有效:
$form->setDefault('user', 'value'); // Set default value for element
答案 4 :(得分:0)
要设置默认值,您可以尝试setDefault或填充
$form->populate( $array_keypair_values );
答案 5 :(得分:0)
我只是尝试按照代码显示从控制器中选择的下拉值,它可以正常工作。
$用户&GT;的setValue($值); // $ value是'value'的'value',而$ user是from的元素。
答案 6 :(得分:0)
上述解决方案不适用于Zend Framework 2,对于使用Zf2的用户,我建议使用以下指令设置默认值:
$formX->get('<Select element Name>')->setValue(<the id of the selected item>);