PHP $_POST получить массив данных
Я пытаюсь сделать несколько текстовых полей с одинаковыми именами.
Вот мой код.
HTML
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'];
echo $email;
Я хотел получить такие результаты:
[email protected], [email protected], [email protected]
Как я могу это сделать? возможно?
Ответы
Ответ 1
Использование []
в имени элемента
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 [email protected], [email protected] ...
Не забывайте санировать эти значения, прежде чем делать что-либо с ними, например. сериализуя массив или вставляя их в базу данных! Просто потому, что они находятся в массиве, это не значит, что они безопасны.
Ответ 2
<input name="email[]" type="text">
<input name="email[]" type="text">
<input name="email[]" type="text">
<input name="email[]" type="text">
$_ POST ['email'] будет массивом.
Ответ 3
Другой пример может быть:
<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