我有一个关于zend的zend_form_element_checkbox的问题。
我有一个有多个复选框的表单。当我发送这个表单时,逻辑上我接收一个参数数组,如下所示
array("controller" => my_controller, ...., "checkbox_name" => array ("0" => firstCheckedValue, "1" => secondCheckedValue, ...) )
我这样创建每个元素:
$checkbox = new Zend_Form_Element_Checkbox('checkbox_name');
$checkbox->setCheckedValue($valueVar)->setIsArray(true);
$this->addElement($checkbox);
我像这样显示每个
$this->form->checkbox_name->renderViewHelper();
但是我希望接收到的参数格式是这样的:
array("controller" => my_controller, ...., "checkbox_name" => array ("firstCheckedValue" => false, "secondCheckedValue" => true, ...) )
换句话说,我希望HTML复选框看起来像这样:
<input type="checkbox" value="true" name="checkbox_name[firstCheckedValue]">
<input type="checkbox" value="false" name="checkbox_name[secondCheckedValue]">
...
(布尔值不是复选框的选中状态)。
我该怎么做呢?
尝试:
$checkbox = new Zend_Form_Element_Checkbox('first');
$checkbox->setCheckedValue($valueVar)->setIsArray(true)->setBelongsTo('checkbox_name');
$this->addElement($checkbox);
$checkbox = new Zend_Form_Element_Checkbox('second');
$checkbox->setCheckedValue($valueVar)->setIsArray(true)->setBelongsTo('checkbox_name');
$this->addElement($checkbox);
Docs: http://framework.zend.com/manual/en/zend.form.advanced.html
Zend_Form::setElementsBelongTo($array):使用这个方法,你可以指定表单的所有元素所属的数组的名称。您可以使用getElementsBelongTo()访问器来确定名称。
试试这个
$checkbox = new Zend_Form_Element_Checkbox('checkbox_name');
$checkbox->attribs(array('name' => 'impression[' . $valueVar . ']');
$checkbox->setCheckedValue($valueVar)->setIsArray(true);
$this->addElement($checkbox);