20

我正在向 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);
        }

我一直在搜索文档,但找不到将选择元素的选项预先设置为“已选择”的简单方法。

4

7 回答 7

53

我刚刚想出了怎么做。

您必须使用元素的 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.
于 2009-10-19T13:31:06.350 回答
30
$form->addElement('select','foo',
array(
        'label'        => 'ComboBox (select)',
        'value'        => 'blue',
        'multiOptions' => array(
            'red'    => 'Rouge',
            'blue'   => 'Bleu',
            'white'  => 'Blanc',
        ),
    )
);

如上所述,您可以使用 'value' => 'blue' 来选择 'blue' => 'Bleu'。

我希望这能帮到您..

于 2010-01-18T06:48:48.343 回答
6

在 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,
        ),
    ));
于 2014-12-04T11:56:55.493 回答
1

我认为这应该有效:

$form->setDefault('user', 'value'); // Set default value for element
于 2009-10-19T12:12:11.603 回答
0

我只是尝试以下代码来显示从控制器中选择的下拉值,它工作正常。

$user->setValue($value); //$value 是 the 的“值”,$user 是 from 的元素。

于 2012-12-20T11:49:50.757 回答
0

要设置默认值,您可以尝试 setDefault 或 populate

$form->populate( $array_keypair_values );

于 2012-08-03T20:49:31.707 回答
0

上述解决方案不适用于 Zend Framework 2,对于使用 Zf2 的用户,我建议使用以下指令设置默认值:

    $formX->get('<Select element Name>')->setValue(<the id of the selected item>);
于 2016-07-10T07:41:27.117 回答