ZendFramework - 如何使用视图助手创建optgroup和选项?

12 php zend-framework zend-form

如何用$ this-> formSelect()创建它?

<select multiple>
    <optgroup label="a">
       <option>1</option> 
       <option>2</option>
    </optgroup>
    <optgroup label="b">
       <option>1</option> 
    </optgroup>
</select>
Run Code Online (Sandbox Code Playgroud)

Mr *_*der 13

在Zend Framework 2中,可以按如下方式完成:

$this->add(array(
        'name'=>'Test',
        'type'=>'Zend\Form\Element\Select',
        'attributes'=>array('type'=>'select','required'=>'required'),
        'options'=>array(
            'label'=>'Test',
            'value_options'=>array('fruits'=>array('label'=>'Fruits','options'=>array('1'=>'Apple','2'=>'Mango')),'animals'=>array('label'=>'Animals','options'=>array('cat'=>'CAT','dog'=>'DOG'))),
            'empty_option'=>'Please Select'
        ),

    ));
Run Code Online (Sandbox Code Playgroud)

请注意,不存在名为empty_options的选项,而应使用empty_option.


Adr*_*rld 12

对于Zend_Form_Element_Select(),它就像这样

$multiOptions = array(
  'Group A' => array(1 => 'First Value',2 => 'Second Value A),
  'Group B' => array(3 => 'Third Value'),
);

$element->setMultiOptions($multiOptions);
Run Code Online (Sandbox Code Playgroud)

请注意,您还有addMultiOption($ option,$ value)和addMultiOptions($ options).只需在另一个数组中包含一个或多个选项.

  • #Google不确定您对ID的含义.`optgroup`不是您可以选择的项目.在Zend中,数组"A组"的键成为标签,标签看起来像下拉菜单中的标题.参见[W3Schools](http://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_optgroup) (2认同)