2015-07-20 2 views
1

У меня есть проблема с моей клонированной формой:HTML форма входа массив PHP

Форма имеет 4 входа и мне нужно разделить переменные и положить их вместе людьми.

Мои входы:

<input type="text" name="fName[]"> 
<input type="text" name="lName[]"> 
<input type="number" name="age[]"> 
<input type="text" name="city[]"> 

Мой PHP:

$fNameArray = $_POST['fName']; 
$lNameArray = $_POST['lName']; 
$ageArray = $_POST['age']; 
$cityArray = $_POST['city']; 

Я действительно не понимаю, как двумерные массивы работают, группировать людей, чтобы заполнить форму, как показано в следующем примере:

первое имя: Сиддхартха, фамилия: Наранхо, возраст: 29, город: Мексика
имя: xxxxx, фамилия: xxxxxx, возраст: xx, город: xxxx.

ответ

0

Некоторые из этих ответов не правы, если я вас понимаю. Прежде всего, если вы используете соглашение об именах data[]fname, тогда он не будет группироваться уверенно?

Во-вторых, пустая скобка будет постоянно перемещаться в новый массив. В итоге вы получите массу массивов с одним элементом в них.

Вам нужно будет указать или ID массивов, чтобы держать их вместе.

<?php 
    if(isset($_POST['data'])){ 
     $results = $_POST['data']; 
     echo "<pre>"; 
     print_r($results); 
     echo "<pre>"; 
    } 
?> 


<form action="" method="post"> 
    <!-- User 1 --> 
    <input type="text" name="data[0][fName]" value="test 1"> 
    <input type="text" name="data[0][lName]" value="test 1"> 
    <input type="number" name="data[0][age]" value="21"> 
    <input type="text" name="data[0][city]" value="test 1"> 

    <br> 

    <!-- User 2 --> 
    <input type="text" name="data[1][fName]" value="test 2"> 
    <input type="text" name="data[1][lName]" value="test 2"> 
    <input type="number" name="data[1][age]" value="22"> 
    <input type="text" name="data[1][city]" value="test 2"> 

    <br> 

    <!-- User 3 --> 
    <input type="text" name="data[2][fName]" value="test 3"> 
    <input type="text" name="data[2][lName]" value="test 3"> 
    <input type="number" name="data[2][age]" value="23"> 
    <input type="text" name="data[2][city]" value="test 3"> 

    <br> 

    <input type="submit" value="Go"> 
</form> 

Это производит это:

Array 
(
    [0] => Array 
     (
      [fName] => test 1 
      [lName] => test 1 
      [age] => 21 
      [city] => test 1 
     ) 

    [1] => Array 
     (
      [fName] => test 2 
      [lName] => test 2 
      [age] => 22 
      [city] => test 2 
     ) 

    [2] => Array 
     (
      [fName] => test 3 
      [lName] => test 3 
      [age] => 23 
      [city] => test 3 
     ) 

) 

Что, что это выглядит, как вы хотите?

-2

Используйте ключи для 2-мерной матрицы.

<input type="text" name="fName[0]"> 
<input type="text" name="lName[0]"> 
<input type="number" name="age[0]"> 
<input type="text" name="city[0]"> 

<input type="text" name="fName[1]"> 
<input type="text" name="lName[1]"> 
<input type="number" name="age[1]"> 
<input type="text" name="city[1]"> 
0

Ваш HTML нормально

Если я понимаю, что вы берете право смотреть на эту

<?php 
    if($_POST && isset($_POST['fName'])) { 
     $people = count($_POST['fName']); 
     for($i=0; $i<$people; $i++) { 
      echo "<p>first name: {$_POST['fName'][$i]}, last name: {$_POST['lName'][$i]} ...</p>"; 
     } 
    } 
Смежные вопросы