没有从我的帖子中获取值

时间:2012-06-21 20:08:43

标签: php html

我有一个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;
}

1 个答案:

答案 0 :(得分:2)

如果复选框和单选按钮没有设置“已检查”属性,则不会将其传递给处理脚本。这是HTML4的设计。

您可以设置状态的唯一方法是使用以下内容:

if(!isset($_POST['mycheckbox'])){ $_POST['mycheckbox'] = 0; }

或更好:

$_POST['mycheckbox'] = isset($_POST['checkbox']);

关于单选按钮,您应该只使用第一个版本,因为单选按钮可以有多个值,所以不要在其中设置TRUE / FALSE,而是要设置默认值。

另外注意,DISABLED元素没有发布,即使它们有值,你也永远不会看到它们,这是HTML4 +的另一个设计特性