Массив из вложенных (зависимых) полей в $_POST?

Есть форма с такой структурой:
<label>Вопрос №1</label>
<input type="text" name="???">
<label>1 ответ на 1 вопрос</label>
<input type="text" name="???">
<label>2 ответ на 1 вопрос</label>
<input type="text" name="???">
<label>3 ответ на 1 вопрос</label>
<input type="text" name="???">

<label>Вопрос №2</label>
<input type="text" name="???">
<label>1 ответ на 1 вопрос</label>
<input type="text" name="???">
<label>2 ответ на 1 вопрос</label>
<input type="text" name="???">


Количество разное для каждого вопроса.

Мне нужно как-то сделать:
- значение 1 вопроса записать в БД,
- значение 1 ответа на 1 вопрос записать в БД
- значение 1 ответа на 1 вопрос записать в БД
...
- значение 5 вопроса записать в БД,
- значение 1 ответа на 5 вопрос записать в БД
- значение 2 ответа на 5 вопрос записать в БД

Записывать буду так:
- получил значение 1 вопроса, записал в таблицу и получил id
- получил значение 1 ответа на 1 вопрос, записал в другую таблицу ответ и id вопроса
- получил значение 2 ответа на 1 вопрос, записал в другую таблицу ответ и id вопроса
...
- получил значение 5 вопроса, записал в таблицу и получил id
- получил значение 1 ответа на 5 вопрос, записал в другую таблицу ответ и id вопроса
- получил значение 2 ответа на 5 вопрос, записал в другую таблицу ответ и id вопроса

Видел такую конструкцию:
<label>Вопрос №1</label>
<input type="text" name="question[][]">
<label>1 ответ на 1 вопрос</label>
<input type="text" name="answer[][]">
<label>2 ответ на 1 вопрос</label>
<input type="text" name="answer[][]">
<label>3 ответ на 1 вопрос</label>
<input type="text" name="answer[][]">

<label>Вопрос №2</label>
<input type="text" name="question[][]">
<label>1 ответ на 1 вопрос</label>
<input type="text" name="answer[][]">
<label>2 ответ на 1 вопрос</label>
<input type="text" name="answer[][]">


Но не пойму как она работает и как можно использовать.
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
@4sadly
<label>Вопрос №1</label>
<input type="text" name="question[]">
<label>1 ответ на 1 вопрос</label>
<input type="text" name="answer[]">
<label>2 ответ на 1 вопрос</label>
<input type="text" name="answer[]">
<label>3 ответ на 1 вопрос</label>
<input type="text" name="answer[]">

Потом просто перебрать массивы с ответами, назвать например answer1[], answer2[]
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
<label>Вопрос №1</label>
<input type="text" name="question[1]">
<label>1 ответ на 1 вопрос</label>
<input type="text" name="answer[1][1]">
<label>2 ответ на 1 вопрос</label>
<input type="text" name="answer[1][2]">
<label>3 ответ на 1 вопрос</label>
<input type="text" name="answer[1][3]">

<label>Вопрос №2</label>
<input type="text" name="question[2]">
<label>1 ответ на 1 вопрос</label>
<input type="text" name="answer[2][1]">
<label>2 ответ на 1 вопрос</label>
<input type="text" name="answer[2][2]">


В PHP соотв-но всё будет сразу разложено и доступно как массив
$_POST['answer'][1][1]
$_POST['answer'][1][2]
итд
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽