2010-06-30 17 views
12

Próbuję utworzyć wiele pól tekstowych o tych samych nazwach.
Oto mój kod.

 
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; 

chciałem mieć wyniki tak:

[email protected], [email protected], [email protected]

W jaki sposób można to zrobić? czy to jest możliwe?

Odpowiedz

43

Korzystanie [] w nazwie elementu

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

zwróci tablicę na koniec PHP:

$email = $_POST['email']; 

można implode() że aby uzyskać wynik, który chcesz:

echo implode(", ", $email); // Will output [email protected], [email protected] ... 

Nie zapomnij oczyścić tych wartości, zanim zrobisz z nimi coś, np. serializacja tablicy lub wstawienie jej do bazy danych! To, że są w szyku, nie oznacza, że ​​są bezpieczne.

+0

Dziękuję za bardzo dobrą odpowiedź. – Jorge

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

$ _POST ['email'] będzie tablicą.