Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Zend checkbox数组存在键值问题_Php_Zend Framework_Checkbox_Zend Form_Zend Form Element - Fatal编程技术网

Php Zend checkbox数组存在键值问题

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

我有一个关于zend的zend_form_element_复选框的问题

我有一个带有多个复选框的表单。当我发送此表单时,逻辑上会收到一个参数数组,如下所示:

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名称不再存在。。。