我在网页上有一些复选框,例如:
<input type="checkbox"<?php echo $checked; ?> name="stuff[]" value="First" />
其中$checked
为空字符串或checked="checked"
,具体取决于提交的内容。
我提交表单并(假设至少有一些名为stuff[]
的复选框已选中),PHP中的_POST['stuff']
是复选框的值数组,例如('first', 'third', 'fourth')
。但是,如果使用checked="checked"
预先选中复选框,则框的值(上例中的“第一个”)将被排除在stuff
值列表之外。即使用户取消选中该框然后重新检查它,也会被遗漏。
我希望提交的值包含所有已检查的项目,包括预先检查的(而非用户未检查的)项目。我怎么能这样做?
答案 0 :(得分:1)
如果没有看到代码,我会猜测checked="checked"
实际上并不是PHP代码输出的内容。相反,您可能错过了"
,并且导致其余元素的值被混淆。
相反,这样做:
<input type="checkbox" checked="<?php echo $checked; ?>" name="stuff[]" value="First" />
$ checked = checked
或null
(不含"
)