POST массив из HTML-формы без javascript
У меня есть форма, которая немного сложна, и я надеюсь упростить обработку на стороне сервера (PHP) изначально POSTing из массива кортежей.
Первая часть формы представляет пользователя:
- Имя
- Фамилия
- Email
- Адрес
- и т.д.
Вторая часть формы представляет Дерево:
Проблема в том, что мне нужно иметь возможность POST нескольких деревьев для одного пользователя в той же форме. Я хотел бы отправить информацию в виде единого пользователя с массивом деревьев, но это может быть слишком сложным для формы. Единственное, что приходит на ум - использовать javascript для создания некоторого сообщения JSON с объектом User и массивом объектов Tree. Но было бы неплохо избежать javascript для поддержки большего числа пользователей (у некоторых людей отключены скрипты).
Ответы
Ответ 1
проверьте это.
<input type="text" name="firstname">
<input type="text" name="lastname">
<input type="text" name="email">
<input type="text" name="address">
<input type="text" name="tree[tree1][fruit]">
<input type="text" name="tree[tree1][height]">
<input type="text" name="tree[tree2][fruit]">
<input type="text" name="tree[tree2][height]">
<input type="text" name="tree[tree3][fruit]">
<input type="text" name="tree[tree3][height]">
он должен быть таким же в массиве $_POST [] (формат PHP для легкой визуализации)
$_POST[] = array(
'firstname'=>'value',
'lastname'=>'value',
'email'=>'value',
'address'=>'value',
'tree' => array(
'tree1'=>array(
'fruit'=>'value',
'height'=>'value'
),
'tree2'=>array(
'fruit'=>'value',
'height'=>'value'
),
'tree3'=>array(
'fruit'=>'value',
'height'=>'value'
)
)
)
Ответ 2
Вы также можете размещать несколько входов с тем же именем и сохранять их в массив, добавляя пустые квадратные скобки к имени ввода следующим образом:
<input type="text" name="comment[]" value="comment1"/>
<input type="text" name="comment[]" value="comment2"/>
<input type="text" name="comment[]" value="comment3"/>
<input type="text" name="comment[]" value="comment4"/>
Если вы используете php:
print_r($_POST['comment'])
вы получите следующее:
Array ( [0] => 'comment1' [1] => 'comment2' [2] => 'comment3' [3] => 'comment4' )