以这种方式创建复选框
$is_conveyance_required = new Zend_Form_Element_Checkbox(FORM_CHECKBOX_PREFIX . 'is_conveyance_required', array());
$is_conveyance_required->addDecorators(array(
array('HtmlTag', array('tag' => 'label')),
array('Label', array('tag' => '')),
));
$is_conveyance_required->setValue(1);
$is_conveyance_required->setChecked( true );
$this->addElement($is_conveyance_required);
以及如何填充表单
$personal_form->populate($personal_data);
但是zend表格没有填充复选框...
<input type="checkbox" value="1" id="chk_is_conveyance_required" name="chk_is_conveyance_required">
这是$ personal_data array img
答案 0 :(得分:2)
根本没有按照你期望的方式运作。
来自Zend手册:
默认情况下,选中的值为“1”,未选中的值为“0”。您 可以使用setCheckedValue()和指定要使用的值 setUncheckedValue()访问器分别。另外,设置 value设置复选框的checked属性。你可以查询一下 使用isChecked()或只是访问属性。使用 setChecked($ flag)方法也将设置标志的状态 在元素中设置适当的选中或未选中的值。 设置复选框的选中状态时请使用此方法 元素,以确保正确设置值。
你可以在你的控制器中使用类似这样的东西(未经测试!)作为popuplate()
if($personal_form->is_conveyance_required->getValue() == 1) {
$personal_form->is_conveyance_required->setChecked(true);
}