1

我有一个 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\'] => on )

如果我已经检查了所有三个框,那么我会看到它们。

Array
(
    [\'v1\'] => on
    [\'v2\'] => on
    [\'v3\'] => on
)

即使没有选中它们,我是否可以看到我的所有复选框。

进程.php

foreach( $_POST['name'] as $k => $v )
{
   echo "key: ".$k;
}
4

1 回答 1

2

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

设置状态的唯一方法是使用类似的东西:

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

或者更好:

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

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

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

于 2012-06-21T20:17:08.840 回答