如何在Zend Framework中向表单添加单选按钮?

7

问题不在于添加单选按钮表单元素,而在于如何在我的脚本格式中匹配它。看起来,在Zend中有多种做事的方法。

以下是我的脚本:

 $this->addElement('text', 'time_from', array(
        'id' => 'datepicker',
        'class' => 'time_from',
        'filters' => array('StringTrim', 'StripTags'),
        'required' => true,
        'label' => 'Start Date of the Week: ',
        'value' => ''
    ));

    $update = $this->addElement('submit', 'update', array(
        'required' => false,
        'ignore' => true,
        'label' => 'Change Time'
            ));

基于这个模板,我该如何添加单选按钮?

我相信一个合理的方法是使用类似这样的代码:

$this->addElement('radio', 'test', array(
            'label'=>'Test Thing',
            'addMultiOptions'=>array(
                'male' => 'Male',
            'female' => 'Female'
            ),
    ));

但是这样并没有显示任何单选按钮。
我还尝试替换这个“:”。
'male' => 'Male',
'female' => 'Female'

使用数组时,我遇到了各种错误:

array('male'=>'Male', 'female'=>'Female')

有没有关于如何实现这个的想法?

此外,如果可以的话,是否有人能够解释为什么有那么多种方式来创建表单,并且它们之间的共同点是什么。

谢谢

1个回答

15

您说得很正确,但由于您使用addElement()构建元素,因此您没有addMultiOptions(函数名称),而只有multiOptions

$this->addElement('radio', 'test', array(
    'label'=>'Test Thing',
    'multiOptions'=>array(
        'male' => 'Male',
        'female' => 'Female',
    ),
));

您可以在此处查看所有Zend_Form元素的摘要。编辑:链接已更新。


通过在与 'label' => 'Test Thing' 相同的格式中添加 'value' => 'male' 来设置默认选项。 - Jonathan Clark

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接