如何以编程方式检索任意数量的类似命名的post变量

时间:2014-01-28 10:47:12

标签: php forms variables

在进入我的注册页面之前,我的用户指定要注册的组成员的号码(X)。到达该页面后,将生成X个注册表单,每个成员一个。所以我为第一个人设置了first_name1文本字段,然后是first_name2first_name3等。总共有X first_name个字段,每个字段的末尾都有一个数字

问题在于检索这些变量。可能有20个人,所以在我的代码中我不会这样做:

$_POST['first_name1'] 
$_POST['first_name2'] 
...
$_POST['first_name20'] 

相反,我想做类似的事情:

$_POST['first_name.$number'] 

是否可以在PHP中使用?

3 个答案:

答案 0 :(得分:4)

您可以在表单元素名称中使用数组,如下所示:

<input name="first_name[]" type="text" />
<input name="first_name[]" type="text" />
<input name="first_name[]" type="text" />

在你的php中,你可以通过迭代数组来访问它:

foreach($_POST['first_name'] as $index => $first_name) {
  // Do something with $first_name
}

注意:您可以使用此方法创建非常复杂的结构,这不仅限于上面的简单示例。您甚至可以创建多维数组,例如:

<input name="user[0][first_name]" type="text" />
<input name="user[0][last_name]" type="text" />

答案 1 :(得分:1)

$first_name_numbered = 'first_name'.$number;
$_POST[$first_name_numbered];

答案 2 :(得分:0)

这个主题在PHP网站上得到了很好的处理:

http://www.php.net/manual/en/reserved.variables.post.php#87650