Обработка динамической формы

У меня есть динамическая форма JS, где я могу добавлять или удалять поля:

Field 1
Field 2
Field 3
Field 4

Теперь, если я удалю поле 2 и добавлю новое поле:

Field 1
Field 3
Field 4
Field 5

Я отправляю это через Ajax POST внутри элемента формы. Моя проблема заключается в обработке PHP на стороне сервера. Как узнать, сколько полей у меня внутри массива $_POST и каковы их идентификаторы? Я генерирую уникальный идентификатор, используя «поле» + counterIndex, но, следуя примеру, как я могу понять, что у меня всего 4 поля, а число 2 отсутствует? Кстати, внутри формы у меня тоже есть статические поля.


person Jumpa    schedule 02.10.2013    source источник
comment
array_keys и count?   -  person Patrick Evans    schedule 02.10.2013
comment
Возможно, php.net/manual/en/function.count.php и php.net/manual/en/function.array-keys.php   -  person allen213    schedule 02.10.2013
comment
@PatrickEvans точно мои мысли :)   -  person allen213    schedule 02.10.2013


Ответы (1)


Это можно сделать с помощью PHP, поскольку $_POST сам по себе является массивом, поэтому его можно зациклить.

Скажем, у вас есть поля:

<input name="dyn[id1]"/>

<input name="dyn[id2]"/>

В бэкэнд-файле PHP

Прокрутите $_POST следующим образом:

<?php
if (isset($_POST['SUBMIT_BTN'])) {
  if (! empty($_POST['dyn'])) {
    foreach ($_POST['dyn'] as $dyn_id => $dyn_val) {
     // "$dyn_id" is your ID you needed.
    }
  }
}
?>
person Pupil    schedule 02.10.2013
comment
Хороший. Однако индекс является необязательным: name=dyn[] и затем foreach. - person Virus721; 02.10.2013