@prodigitalson так модераторы должны действовать / вести себя! Я подчеркиваю это для других, чтобы признать!

имаю основы использования входных HTML-форматированных имен. Если бы у меня была форма с переменным количеством входов 'item', я мог бы сделать что-то подобное для каждого из них:

<input name='item[]' type='text' />

И когда я получаю элементы из массива $ _POST, я могу перебирать их так:

$items = $_POST['item'];
foreach($items as $item) {
}

Но мой вопрос немного сложнее. У меня есть форма, где пользователи могут нажать кнопку «добавить один», и в нижней части формы появится новая строка. Каждая новая строка содержит входные данные «name» и «description».

Итак, изначально я думал, что сделаю это:

<input name='item[name][]' type='text' />
<input name='item[description][]' type='text' />

И затем перебрать их так:

$items = $_POST['item'];
foreach($items as $item) {
  print $item['name'] . ' ' . $item['description'];
}

Но вместо того, чтобы работать, как я надеялся, он структурирует массив 'item' так, чтобы я мог получить доступ к первому имени элемента как$item['name'][0] а не как$item[0]['name'].

Затем я перевернул его так, чтобы мои входные данные были названы так:

<input name='item[][name]' type='text' />
<input name='item[][description]' type='text' />

Но это привело к отдельному «пункту» для каждого «имени» и для каждого «описания», а не к группировке каждой пары в один «элемент».

Мне действительно не нравится иметь массивы 'name' и отдельный массив 'description'. Я бы предпочел массивы 'item' с каждым массивом, содержащим поля 'name' и 'description'. Есть ли способ сделать это без генерации индекса в моем JavaScript? Поскольку люди могут добавлять и удалять их динамически, для моего javascript очень сложно рассчитать соответствующий индекс для следующего элемента. Нет ли способа сделать это в общем?

Ответы на вопрос(1)

Ваш ответ на вопрос