我有一个包含一部分复选框和另一部分单选按钮的表单。我对两者都有类似的问题。
复选框部分的 html 如下所示:
<input type="checkbox" name="activity[]" value="run" id="run" /><label for="run">Run</label>
<input type="checkbox" name="activity[]" value="swim" id="swim" /><label for="swim">Swim</label>
<input type="checkbox" name="activity[]" value="bike" id="bike" /><label for="bike">Bike</label>
当我提交表单时,似乎没有正确定义活动数组。
当我处理表单时,假设前两个复选框被勾选,当 php 执行时
$activity = $_POST['activity'];
var_dump($activity);
它打印:
array(2) [0]=> string(0) "" [1]=> string(0) ""
显然,它检测到三个框中有两个被打勾,但它没有通过值。如果 HTML 以所有复选框的选中属性开头,则它会正确发送复选框值。
同样,对于单选按钮,除了默认值之外,我无法获得要通过的值。如果用户更改默认值,则参数存在,但值为空字符串。
据我了解,该数组应包含为每个已勾选的框定义的值,无论该框是否在加载表单时被勾选。我究竟做错了什么?