【问题标题】:How can I retrieve checkbox array values when the checkbox name is dynamically created?动态创建复选框名称时,如何检索复选框数组值?
【发布时间】:2011-08-14 01:07:35
【问题描述】:

我正在根据数据库中的值动态创建表单。每个表单元素对应一个特定的数据库条目,其中包括名称、标签、类型和(取决于类型)与表单元素一起显示的可能值。

每个表单元素的名称值设置为相应数据库条目的标识列值。

不过,我在使用复选框时遇到了问题。我正在尝试检索所选值的数组,但我无法检索多个。我相信这是因为我没有正确地将复选框名称设置为数组,但我不确定。

这里是我生成复选框标签的地方:

$answers = explode(',',$answerKey);
for($i=0; $i < count($answers); $i++) {
    $questionTag .= "<INPUT TYPE='checkbox' name='$id' value='$answers[$i]' />$answers[$i]";
    }

然而,当我发回我的结果时,$_POST["$id"] 的结果只返回复选框列表中的最后一个值。

任何建议将不胜感激!

【问题讨论】:

  • 而不是name='$id' 并猜测复选框值的位置,使用name="someOption[]" 和合理的value:所有 someOptions 现在将在一个数组中$_POST['someOption']
  • 所有的复选框都与一个组相关吗?
  • 对于任何有复选框的元素,所有的复选框都与该组相关,但表单上可以有多个复选框。

标签: php html


【解决方案1】:
$questionTag .= "<INPUT TYPE='checkbox' name='".$id."[]' value='$answers[$i]' />$answers[$i]";

【讨论】:

  • 请注意,这不会创建一组复选框,因为这将只返回一个具有唯一名称的复选框,例如 1[]
  • 不,这很好用。它确实创建了一组复选框,因为我正在遍历 $answers[$i] 值的列表,但是每次迭代都会重复 name='".$id."[]"' 而不会改变 $id 值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-28
  • 2010-11-07
  • 2013-06-13
  • 2011-08-08
  • 2013-01-25
  • 1970-01-01
相关资源
最近更新 更多