【问题标题】:Get several checkboxes id's after submission提交后获取几个checkbox id
【发布时间】:2014-03-28 00:30:07
【问题描述】:

我有类似下面的代码:

<input type="checkbox" name="visitProperty" value="1" id="visit-0">
<input type="checkbox" name="visitProperty" value="1" id="visit-1">
<input type="checkbox" name="visitProperty" value="1" id="visit-2">
...

提交表单后,我希望选中复选框,到目前为止我一直在使用

if (isset($_POST['visitProperty']) {..}

但据我了解,它只有一个复选框?因为我需要检查所有这些并查看它们是否被检查,所以在 if 语句中我可以创建一个循环,获取所有提交的复选框的 id,然后从 id 获取数字,以更新某个数组。

【问题讨论】:

  • name="visitProperty[]"
  • @Dexa 那是我第一次看到类似的东西 [] 做什么?
  • 表示 visitProperty 是一个数组。还将值更改为 1,2,3 之类的值......或者只是检查这个答案:stackoverflow.com/questions/4997252/…
  • @Dexa 好吧我明白了,所以它是说它是一个输入数组吗?
  • 我相信您已经将复选框与单选按钮混淆了。复选框必须具有所有唯一的 name 属性。当然,除非您希望将它们存储在数组中,否则在这种情况下您将 name 属性设置为 name="visitProperty[]"

标签: php forms post checkbox


【解决方案1】:
<input type="checkbox" name="visitProperty[]" value="1" id="visit-0">
<input type="checkbox" name="visitProperty[]" value="2" id="visit-1">
<input type="checkbox" name="visitProperty[]" value="3" id="visit-2">

<?php
    foreach($_POST['visitProperty'] as $check) {
        echo $check . "<br>"; // for example
    }
?>

注意: $_POST['visitProperty'] 将保留选中的 checkbox 值。您将访问所有checkboxs 作为数组,如下$_POST['visitProperty'][]

【讨论】:

  • 这行不通,复选框只有在选中时才会发送到服务器,所以如果不是全部选中,您将无法识别在服务器端选中了哪些;您将拥有一个数组,其中一些项目的值都相同。
  • @jeroen 更新(刚刚展示了如何避免空的复选框)
  • 我不是这个意思。如果选中一个框,你怎么知道它是 html ID visit-0visit-1visit-2 的那个?
  • 不应该使用这种技术获取哪个复选框值属于 html ID
  • @jeroen IDs 只是在 JavaScript 的情况下帮助我们,在 php 的情况下为什么我们需要知道哪个 ID 属于哪个值,关键是要获取像 OP 这样的值发布
【解决方案2】:

当您输入名称时,您正在声明一个变量。您需要将其声明为数组,否则每个复选框都会弹出最后一个。在名称中添加一些空方括号。

【讨论】:

    【解决方案3】:

    您需要定义ID 一个唯一值,否则您将无法在服务器端识别它们(ID不会发送到$_POST)。

    因此,如果是唯一的、可识别的 ID,您可以执行以下操作:

    <input type="checkbox" name="visitProperty[<?php // echo some unique id from a database for example ?>]" value="1" id="visit-0">
    

    您需要 ID 可识别的原因是,未选中的复选框不会发送到服务器,因此如果 visitProperty 是一个数组,您最终可能会得到一个 2 的数组,但您不知道哪个2.

    【讨论】:

      猜你喜欢
      • 2021-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-18
      • 1970-01-01
      • 2021-06-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多