Опубликовать массив из HTML-формы без javascript


У меня есть форма, которая немного сложна, и я надеюсь упростить обработку на стороне сервера (PHP), изначально разместив массив кортежей.

первая часть формы представляет собой пользователей:

  • Имя
  • Фамилия
  • Email
  • адрес
  • etc

вторая часть формы представляет собой дерево:

  • фруктовое
  • Высота
  • etc

проблема в том, что мне нужно быть в состоянии разместить несколько деревьев за один пользователей в том же виде. Я хотел бы отправить информацию как один пользователей массив деревьев но это может быть слишком сложно сделать с формой. Единственное, что приходит на ум, это использование javascript для создания некоторого сообщения JSON с помощью Объект пользователя и массив объектов дерева. Но было бы неплохо избежать javascript для поддержки большего количества пользователей (некоторые люди отключили скрипты).

2 60

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' )