Опубликовать массив из HTML-формы без javascript
У меня есть форма, которая немного сложна, и я надеюсь упростить обработку на стороне сервера (PHP), изначально разместив массив кортежей.
первая часть формы представляет собой пользователей:
- Имя
- Фамилия
- адрес
- etc
вторая часть формы представляет собой дерево:
- фруктовое
- Высота
- etc
проблема в том, что мне нужно быть в состоянии разместить несколько деревьев за один пользователей в том же виде. Я хотел бы отправить информацию как один пользователей массив деревьев но это может быть слишком сложно сделать с формой. Единственное, что приходит на ум, это использование javascript для создания некоторого сообщения JSON с помощью Объект пользователя и массив объектов дерева. Но было бы неплохо избежать javascript для поддержки большего количества пользователей (некоторые люди отключили скрипты).
2 ответа:
<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' ) ) )
вы также можете разместить несколько входов с одинаковым именем и сохранить их в массив, добавив пустые квадратные скобки к имени входа следующим образом:
<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' )