我有一个大约有80个复选框的表单,默认情况下它们都将被选中。用户只会取消选中不需要的项目,所以我在POST
中寻找未选中的复选框元素。但是,POST
只保存选中的值。
经过一番搜索,我找到了一个解决我的情况的方法:这个问题
处理:
<form>
<input type='hidden' value='0' name='selfdestruct'>
<input type='checkbox' value='1' name='selfdestruct'>
</form>
使用这个我可以得到隐藏字段的值,从而实现了我的目的。
但是重要的问题是为什么这不是默认特性?对于任何第一次听起来很奇怪的技术问题,我都能找到合理的理由。但是对于这个(不能发布未选中的复选框),我仍然很想知道原因。
W3C解释说,只有"成功"的控件才是"成功"的。提交。
一个成功的控件是"valid"提交。
- 所有"知道;复选框可能成功。
同样,对于单选按钮,只有"on"单选按钮为"成功",对于菜单,只有选中的选项为"成功"。
未选中的复选框不会在POST数据中发送。你应该检查它是否为空:
if (empty($_POST['field1']))
....
else
....
您还忘记在字段中添加正确的name
和id
。添加这个将使检查更容易。
<input type='hidden' value='0' name='field1' id="field1" >