我有一个html表单
<form action="process.php" method="post">
<input type="checkbox" name="name[v1]" />
<input type="checkbox" name="name[v2]" />
<input type="checkbox" name="name[v3]" />
<input type="submit" name="update" value="update">
</form>
如果它们只有一个勾选复选框,那么我只看到该复选框
阵 ( [\'v3 \'] =&gt;上 )
如果我已经检查了所有三个盒子,那么我会全部看到它们。
Array
(
[\'v1\'] => on
[\'v2\'] => on
[\'v3\'] => on
)
他们是否可以看到我的所有复选框,即使他们没有被选中。
process.php
foreach( $_POST['name'] as $k => $v )
{
echo "key: ".$k;
}
答案 0 :(得分:2)
如果复选框和单选按钮没有设置“已检查”属性,则不会将其传递给处理脚本。这是HTML4的设计。
您可以设置状态的唯一方法是使用以下内容:
if(!isset($_POST['mycheckbox'])){ $_POST['mycheckbox'] = 0; }
或更好:
$_POST['mycheckbox'] = isset($_POST['checkbox']);
关于单选按钮,您应该只使用第一个版本,因为单选按钮可以有多个值,所以不要在其中设置TRUE / FALSE,而是要设置默认值。
另外注意,DISABLED元素没有发布,即使它们有值,你也永远不会看到它们,这是HTML4 +的另一个设计特性