Динамическая форма с PHP и вложенным массивом - PullRequest
0 голосов
/ 15 марта 2011

У меня есть проект, который требует процесса ввода заказа.Заказ будет так же просто, как выбрать элемент из выпадающего списка.Каждый заказ может содержать несколько позиций для покупки.Использование JQuery для клонирования этого поля довольно просто, насколько я понимаю, и я могу зайти так далеко.Там, где я зацикливаюсь, будет набор опций, относящихся к позиции, выбранной для заказа, который должен быть привязан к этой конкретной позиции.Типичный заказ может выглядеть примерно так:

  • ПУНКТ ПРОДУКТА: ASUSE BASE DESKTOP
    • ОПЦИИ
    • 4 ГБ RAM RAM Option
    • Windows 7 x64 Professional
  • ПУНКТ ПРОДУКТА: HP BASE LAPTOP
    • ОПЦИИ
    • 2 ГБ Опция оперативной памяти
    • Windows Vista x32

Моя HTML-разметка выглядит примерно так:

<tr class="firstProduct productOrder">
    <td>Product Name</td>
    <td>
        <select id="ProductNameSelect" name="productOrdered[]">
            <option selected="selected" value="0">Select a Product...</option>
            <option value="1">ASUS BASE DESKTOP</option>
            <option value="2">HP BASE LAPTOP</option>
        </select>
    </td>
</tr>
<tr class="firstProduct productOrder">
    <td>Product Options</td>
    <td>
        <label>4GB RAM Option<input type="checkbox" name="productOption[0][]" value="1" /></label>
        <label>Windows 7 x64 Professional<input type="checkbox" name="productOption[0][]" value="2" /></label>
        <label>Windows Vista x32<input type="checkbox" name="productOption[0][]" value="3" /></label>
    </td>
</tr>

Имя поля productOption должно бытьименование во вложенный массив или параметры, выбранные для productOrdered [1], могут быть назначены неправильно.Мне нужна возможность повторять имя productOption от [0] [] до [1] [] до [2] [] и так далее для каждого добавленного заказа, чтобы его можно было правильно обработать вПеременная POST для PHP.

Существует ли «лучший метод» или, по крайней мере, более распространенный метод для достижения этой цели, кроме поиска предыдущего дочернего элемента в JQuery и анализа имени для определения следующего идентификатора, который будетиспользуется в названии для productOption?

1 Ответ

3 голосов
/ 15 марта 2011

Да, просто объявите глобальную переменную в своем коде javascript и увеличивайте ее при каждом добавлении набора полей.

<script>
var index=0;
function addFieldset()
{
   ...
   index++;
}
</script>
...