我们有zend
表单,其中包含文本输入字段和复选框数组,如下所示 -
<input class="checkbox_Category" type="checkbox" name="tag[]" value="19"> somename1 <br/>
<input class="checkbox_Category" type="checkbox" name="tag[]" value="20"> somename2 <br/>
<input class="checkbox_Category" type="checkbox" name="tag[]" value="21"> somename3 <br/>
并使用
$ formObject-&GT;填充($ formDataArray);
在控制器中填充整个表单中的数据。所有文本输入字段似乎都很好,但复选框却没有。在$ formDataArray中,复选框的数据格式为
[tag] =&gt;数组([0] =&gt; 20 [1] =&gt; 19)
与其他表格数据一样 - [firstName] =&gt; 'somename'等 我无法弄清楚表单所期望的数据格式,以便填充populate();
答案 0 :(得分:0)
你可能会对你给出的数字名称有问题,请改变如下
<input class="checkbox_Category" type="checkbox" name="tag" value="19"> somename1 <br/>
<input class="checkbox_Category" type="checkbox" name="tag" value="20"> somename2 <br/>
<input class="checkbox_Category" type="checkbox" name="tag" value="21"> somename3 <br/>
如果我能帮助你,请告诉我
答案 1 :(得分:0)
如果没有真正看到你的Zend_Form代码,这是非常困难的。但是,大多数情况下,我看到人们将“复选框”元素误认为Zend Framework中的“multiCheckbox”元素。我知道 - 这有点令人困惑 - 但复选框是一个带有开/关值的复选框。 MultiCheckbox处理多个值 - 我认为这是您要完成的任务。让我向您展示一个可以在上面生成HTML的快速表单。
class Application_Form_Test extends Zend_Form
{
public function init()
{
$this->setMethod('post');
$multiOptions = array(
19 => 'somename1',
20 => 'somename2',
21 => 'somename3'
);
$this->addElement('multiCheckbox', 'tag', array(
'multiOptions'=>$multiOptions
));
$this->addElement('submit', 'submitbutton');
}
}
现在,如果您使用类似......
的内容$form->populate($this->getRequest()->getPost());
在您的控制器中,它将按预期填充。
希望这有帮助!