如何从$_POST获取数据数组

20

我有一个表单,其中有多个具有相同名称的文本框。 我想在我的PHP代码中获取所有文本框的数据。

这是我的代码。

Email 1:<input name="email" type="text"/><br/>
Email 2:<input name="email" type="text"/><br/>
Email 3:<input name="email" type="text"/><br/>
$email = $_POST['email'];
echo $email;

我希望得到这样的结果:

email1@email.com, email2@email.com, email3@email.com

但实际上,我只能获取最后一个文本框中的文本。

3个回答

48

在元素名称中使用[]

Email 1:<input name="email[]" type="text"><br>
Email 2:<input name="email[]" type="text"><br>
Email 3:<input name="email[]" type="text"><br>

在 PHP 端将返回一个数组:

$email = $_POST['email'];   

你可以使用implode()将其合并以获得您想要的结果:

echo implode(", ", $email); // Will output email1@email.com, email2@email.com ...

在对这些值进行任何操作之前,不要忘记对它们进行清理,例如将数组序列化或将其插入到数据库中!仅仅因为它们在一个数组中,并不意味着它们是安全的。


10
<input name="email[]" type="text">
<input name="email[]" type="text">
<input name="email[]" type="text">
<input name="email[]" type="text">

$_POST['email']将是一个数组。



5

另一个例子可能是:

<input type="text" name="email[]" value="1">
<input type="text" name="email[]" value="2">
<input type="text" name="email[]" value="3">

<?php
     foreach($_REQUEST['email'] as $key => $value)
          echo "key $key is $value <br>";

将会显示

key 0 is 1
key 1 is 2
key 2 is 3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接