Php Zend checkbox数组存在键值问题
我有一个关于zend的zend_form_element_复选框的问题 我有一个带有多个复选框的表单。当我发送此表单时,逻辑上会收到一个参数数组,如下所示:Php Zend checkbox数组存在键值问题,php,zend-framework,checkbox,zend-form,zend-form-element,Php,Zend Framework,Checkbox,Zend Form,Zend Form Element,我有一个关于zend的zend_form_element_复选框的问题 我有一个带有多个复选框的表单。当我发送此表单时,逻辑上会收到一个参数数组,如下所示: array("controller" => my_controller, ...., "checkbox_name" => array ("0" => firstCheckedValue, "1" => secondCheckedValue, ...) ) $this->form->checkbox_n
array("controller" => my_controller, ...., "checkbox_name" => array ("0" => firstCheckedValue, "1" => secondCheckedValue, ...) )
$this->form->checkbox_name->renderViewHelper();
<input type="checkbox" value="true" name="checkbox_name[firstCheckedValue]">
<input type="checkbox" value="false" name="checkbox_name[secondCheckedValue]">
...
我以这种方式创建每个元素:
$checkbox = new Zend_Form_Element_Checkbox('checkbox_name');
$checkbox->setCheckedValue($valueVar)->setIsArray(true);
$this->addElement($checkbox);
array("controller" => my_controller, ...., "checkbox_name" => array ("firstCheckedValue" => false, "secondCheckedValue" => true, ...) )
我会这样显示每一个:
array("controller" => my_controller, ...., "checkbox_name" => array ("0" => firstCheckedValue, "1" => secondCheckedValue, ...) )
$this->form->checkbox_name->renderViewHelper();
<input type="checkbox" value="true" name="checkbox_name[firstCheckedValue]">
<input type="checkbox" value="false" name="checkbox_name[secondCheckedValue]">
...
但我希望收到的参数格式如下:
$checkbox = new Zend_Form_Element_Checkbox('checkbox_name');
$checkbox->setCheckedValue($valueVar)->setIsArray(true);
$this->addElement($checkbox);
array("controller" => my_controller, ...., "checkbox_name" => array ("firstCheckedValue" => false, "secondCheckedValue" => true, ...) )
换句话说,我希望HTML复选框如下所示:
array("controller" => my_controller, ...., "checkbox_name" => array ("0" => firstCheckedValue, "1" => secondCheckedValue, ...) )
$this->form->checkbox_name->renderViewHelper();
<input type="checkbox" value="true" name="checkbox_name[firstCheckedValue]">
<input type="checkbox" value="false" name="checkbox_name[secondCheckedValue]">
...
...
(布尔值不适用于复选框的选中状态)
我该怎么做呢?试试这个
$checkbox = new Zend_Form_Element_Checkbox('checkbox_name');
$checkbox->attribs(array('name' => 'impression[' . $valueVar . ']');
$checkbox->setCheckedValue($valueVar)->setIsArray(true);
$this->addElement($checkbox);
尝试:
文件:
Zend_Form::setElementsBelongTo($array):使用此方法,您可以
指定窗体的所有元素所属的数组的名称。
可以使用getElementsBelongTo()访问器确定名称
感谢您的回复:)我在描述想要的html时犯了一个错误。我会编辑。但是,此方法不起作用,因为在执行以下操作时会转义“[”,“]”:$this->form->getElements()
我看到复选框的名称为:checkbox\u namefirstCheckedValue
而不是checbox\u name[firstCheckedValue]
这当然会产生问题,因为当我这样做时:$this->form->checkbox\u name->renderViewHelper()代码>复选框\u名称不再存在。。。