В вашем коде, я вижу, у вас уже есть вход с именем = "field_name" и в addColumn ()
Функция вы также добавляете другой вход с тем же именем.
Если у вас есть вход с именем «field_name» в форме, а затем вы снова динамически добавляете еще один вход с тем же именем, они заменяют друг друга, и в данных поста присутствует только одно их значение с тем же именем. .
Здесь вы можете использовать массивы, например,
<input name="field_name[]" ... />
<input name="field_type[]" ... />
...
<input name="field_name[]" ... />
<input name="field_type[]" ... />
...
<input name="field_name[]" ... />
<input name="field_type[]" ... />
...
Вы получите массив Post, например:
Array
(
[field_name] => Array
(
[0] => fv1
[1] => fv2
....
)
[field_type] => Array
(
[0] => ftv1
[1] => ftv12
...
)
)
Итак, для разбора:
$fields_array = array();
$no_of_fields = isset($_POST['field_name'])? count($_POST['field_name']) : 0;
for ($i=1; $i<=$no_of_fields; $i++) {
$tmp = array();
if (isset($_POST['field_name'][$i])) $tmp[] = $_POST['field_name'][$i];
if (isset($_POST['field_type'][$i])) $tmp[] = $_POST['field_type'][$i];
...
if (!empty($tmp)) $fields_array[] = array();
}
Это немного ошибочно (при условии, что field_name, field_type будет иметь массивы с одинаковым количеством элементов, если один из них пропущен, параллельный последовательный из них будет поврежден).
Лучше использовать счетчик для полей.
Например:
<input name="no_of_fields" value="1"/>
Значение которого будет увеличиваться при каждом добавлении.
И твоя форма будет такой:
<input name="field_name_1" .../>
<input name="field_type_1" .../>
...
<input name="field_name_2" .../>
<input name="field_type_2" .../>
...
<input name="field_name_3" .../>
<input name="field_type_3" .../>
...
Для разбора на стороне сервера вы можете перейти на:
$fields_array = array();
$no_of_fields = isset($_POST['no_of_fields'])? intval($no_of_fields) : 0;
if ($no_of_fields > 0) {
for ($i=1; $i<=$no_of_fields; $i++) {
$tmp = array();
if (isset($_POST['field_name_'.$i])) $tmp[] = $_POST['field_name_'.$i];
if (isset($_POST['field_type_'.$i])) $tmp[] = $_POST['field_type_'.$i];
...
if (!empty($tmp)) $fields_array[] = array();
}
}
// Now process/output the $fields_array;