如何以Zend表格获得常规复选框?

时间:2011-04-20 19:08:41

标签: zend-framework checkbox zend-form

我在Zend_Form中有一个表单需要一些复选框,我希望它们是常规的旧复选框。你知道,你给了他一个名字和一个价值。如果选中它们,您的帖子数据包含name => value。

Zend_Form正在生成两个输入字段。一个是带有value=1的复选框,第二个带有value=2的隐藏输入。两者都有相同的名称。理论上我理解Zend是如何期望复选框工作的,但这并不是我期望它工作的方式,而是我不希望它如何工作。如何获取旧时尚HTML复选框?

我尝试过使用$this->createElement$this->addElement并手动创建Zend_Form_Element_Checkbox。没有人允许我设置复选框的值,并且都生成隐藏的输入。

4 个答案:

答案 0 :(得分:3)

最后也是非常正确的答案是为元素添加一个选项:

$this->addElement('checkbox', 'my_element', array(
    'label' => 'My Element Label',
    'name' => 'my_element_name',
    'disableHidden' => true
));

答案 1 :(得分:1)

您可以扩展 Zend库并添加您自己的自定义表单元素,以便像您期望的那样呈现它。我这样做有一个日期字段,它工作得很好。

答案 2 :(得分:1)

Zend_Form_Element_MultiCheckbox正是您要找的。

标准的Checkbox元素用于表示“是/否”方案。

答案 3 :(得分:0)

我想知道为什么这对你不起作用。您可以将值设置为您想要的任何值(setCheckedValue()setUncheckedValue())。因此,与普通复选框的唯一区别是

if (null == $this->_getParam('checkbox', null)) {
//vs.
if ($unchecked == $this->_getParam('checkbox')) {

你到底想要做什么?