Php Zend Framework 2复选框未选中的设置值不工作
我尝试将复选框值设置为false:Php Zend Framework 2复选框未选中的设置值不工作,php,zend-framework,checkbox,zend-framework2,Php,Zend Framework,Checkbox,Zend Framework2,我尝试将复选框值设置为false: $form->add(array( 'type' => 'Zend\Form\Element\Checkbox', 'name' => 'test_checkbox', 'options' => array( 'label' => 'Test checkbox', 'use_hidden_element' => false,
$form->add(array(
'type' => 'Zend\Form\Element\Checkbox',
'name' => 'test_checkbox',
'options' => array(
'label' => 'Test checkbox',
'use_hidden_element' => false,
'checked_value' => 1,
'unchecked_value' => 0,
),
'attributes' => array(
'value' => 0,
),
));
但由于本页包含以下内容:
<input type="checkbox" name="test_checkbox" value="1">
这个值没有改变,我不明白为什么
其他PHP和JS脚本不会更改此值
也许我误解了“checked\u value”、“unchecked\u value”和“value”的工作原理?您的代码几乎是正确的。应该是:
$form->add(array(
'type' => 'Zend\Form\Element\Checkbox',
'name' => 'test_checkbox',
'options' => array(
'label' => 'Test checkbox',
'use_hidden_element' => false,
'checked_value' => 1,
'unchecked_value' => 0,
)
));
但我认为你误解了HTML复选框的工作原理。“值”属性应始终仅包含选中的值。浏览器仅在勾选复选框时提交此值。因此,当页面加载时,复选框将正确显示在源中,如下所示:
<input type="checkbox" name="test_checkbox" value="1">
为了获得未检查的值,ZF(以及我所知道的所有其他框架)将其添加到复选框上方的隐藏表单字段中。如果未勾选复选框,浏览器将提交隐藏的表单字段。为什么要将
选中值
和值
属性设置为不同的内容?您试图实现什么?值属性一次只能保留值。@timfuntain,checked_value和unchecked_value是true和false(1和0)的别名。值-必须是页面加载时复选框的默认值。@DCoder,您能解释一下吗?@felixMind这行的意思是其他PHP和JS脚本不更改此值。。?