У меня есть HTML-форма, которая позволяет пользователю отправлять сведения об одном или нескольких дочерних элементах. У каждого ребенка может быть один или несколько предметов.
Моя структура HTML-формы выглядит следующим образом:
<input type="text" name="child[1][name]">
<input type="text" name="child[1][dob]">
Затем у меня отображается таблица для элементов (так как для каждого элемента есть 2 поля), где пользователь может добавлять / удалять строки с помощью Javascript. Пример:
<table>
<tr>
<td><input type="text" name="child[1][item][name]"></td>
<td><input type="text" name="child[1][item][value]"></td>
</tr>
</table>
Когда я получаю доступ к этим данным, я вводю дочерние данные в таблицу, затем мне нужно получить доступ к элементам для каждого дочернего элемента отдельно, чтобы они могли быть сохранены в таблице «items» (с идентификатором дочернего элемента, который я возьму из базы данных вставку).
В моем PHP я ищу что-то вроде:
foreach($_POST['child'] as $child) {
$child_name = $child['name'];
$child_dob = $child['dob'];
// insert child data to children table
foreach($_POST['item'] as $item) {
$item_name = $item['name'];
$item_value = $item['value'];
// insert item data to items table
}
}
Моя проблема в том, что без элементов дочерний массив выглядит нормально, когда я печатаю_r ($ _ POST ['child']). Однако, когда я включаю элементы в соответствии с моим HTML выше, массив выводит только последний добавленный элемент (есть ли один или несколько). Я не уверен, правильно ли я указываю массив для элементов во входных тегах или как мне тогда обращаться к нему в PHP.
Если у кого-нибудь есть какие-либо предположения о том, где мой синтаксис может быть неправильным, или, если, возможно, я неправильно подхожу к этому, это было бы очень полезно.