0

如何将复选框 POST 关闭,例如当它没有被选中时,因为复选框仅在它被选中并且我不想使用隐藏变量时才提交值

谢谢

4

1 回答 1

1

简短的回答是浏览器不会发送未选中的复选框。但是一种可能的解决方法是在 php 端设置一个默认数组

因此,对于包含以下字段的表单

<input type='checkbox' name='checkbox[a]' value='1'/>
<input type='checkbox' name='checkbox[b]' value='1'/>
<input type='checkbox' name='checkbox[c]' value='1'/>

你会说

$checkbox_defaults = array(
   "a" => 0,
   "b" => 0,
   "c" => 0
);

然后在 PHP 上说

$_POST["checkbox"] = array_merge($checkbox_defaults, $_POST["checkbox"]);

注意这仅适用于字符串索引数组......如果您需要使用数字索引数组,php 应该看起来像这样。

$checkbox_defaults = array(
   0 => 0,
   1 => 0,
   2 => 0
);
foreach($checkbox_defaults as $k=>$v){
    $_POST["checkbox"][$k] = (isset($_POST["checkbox"][$k])?
                             $_POST["checkbox"][$k]:$v);
}
于 2013-05-26T04:58:35.343 回答