代码之家  ›  专栏  ›  技术社区  ›  Tom

zend framework-在选择框下拉列表中设置“selected”值

  •  19
  • Tom  · 技术社区  · 16 年前

    我将向Zend_窗体实例添加一个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”。

    7 回复  |  直到 10 年前
        1
  •  50
  •   Tom    16 年前

    我刚刚学会了怎么做。

    必须使用元素的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.
    
        2
  •  29
  •   Raj    15 年前
    $form->addElement('select','foo',
    array(
            'label'        => 'ComboBox (select)',
            'value'        => 'blue',
            'multiOptions' => array(
                'red'    => 'Rouge',
                'blue'   => 'Bleu',
                'white'  => 'Blanc',
            ),
        )
    );
    

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

    我希望这对你有帮助。

        3
  •  5
  •   Onshop    11 年前

    在Zend框架2中,设置“value”attribue。例如,将选择默认为“是”:

        $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,
            ),
        ));
    
        4
  •  1
  •   opHASnoNAME    16 年前

    我认为这应该有效:

    $form->setDefault('user', 'value'); // Set default value for element
    
        5
  •  0
  •   Nuar Haruha    14 年前

    要设置默认值,可以同时尝试set default或populate

    $form->populate( $array_keypair_values );

        6
  •  0
  •   Gokul Shinde    13 年前

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

    $user->setvalue($value);//$value是的“value”,$user是的元素。

        7
  •  0
  •   Yazid Erman    10 年前

    上面提到的解决方案对Zend Framework 2不起作用,对于那些使用ZF2的用户,我建议使用以下指令设置默认值:

        $formX->get('<Select element Name>')->setValue(<the id of the selected item>);
    
    推荐文章