【问题标题】:not getting values from my post没有从我的帖子中获得价值
【发布时间】:2012-06-22 04:35:01
【问题描述】:

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

如果我选中了所有三个框,那么我会看到它们。

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

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

进程.php

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

【问题讨论】:

  • HTML 表单从不提交未选中的复选框。
  • @sebas: 什么 javascript? name[v1] 是一个完全可以接受的 HTML 名称属性值。
  • 他们有什么办法可以提交吗,请问我需要更改数据库中的值。
  • 您无法获取未选中复选框的值。您可以遍历可能的值,并查看 $_POST 中存在哪些条目。另一种方法是使用单选或提交输入类型。

标签: php html


【解决方案1】:

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

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

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

或者更好:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    • 2018-04-08
    • 2012-06-24
    • 1970-01-01
    • 2020-01-12
    • 2019-07-03
    相关资源
    最近更新 更多