Я столкнулся с этим при создании форм ajax, где я включаю несколько наборов полей. Взять, к примеру, заявление о приеме на работу. Я начинаю с одного набора профессиональных справочников, и у меня есть кнопка с надписью «Добавить еще». Это выполняет вызов ajax с параметром $ count, чтобы снова включить набор входных данных (имя, контакт, телефон и т. Д.). Это отлично работает при вызове первой страницы, поскольку я делаю что-то вроде:
<?php
include('references.php');`
?>
Пользователь нажимает кнопку, которая выполняет вызов ajax. ajax('references.php?count=1');
Затем внутри файла links.php у меня есть что-то вроде:
<?php
$count = isset($_GET['count']) ? $_GET['count'] : 0;
?>
У меня также есть другие подобные динамические включения по всему сайту, которые передают параметры. Проблема возникает, когда пользователь нажимает кнопку «Отправить» и возникает ошибка формы. Итак, теперь, чтобы не дублировать код для включения тех дополнительных наборов полей, которые динамически включаются, я создал функцию, которая настроит включение с соответствующими параметрами GET.
<?php
function include_get_params($file) {
$parts = explode('?', $file);
if (isset($parts[1])) {
parse_str($parts[1], $output);
foreach ($output as $key => $value) {
$_GET[$key] = $value;
}
}
include($parts[0]);
}
?>
Функция проверяет параметры запроса и автоматически добавляет их в переменную $ _GET. Это очень хорошо сработало для моих случаев использования.
Вот пример страницы формы при вызове:
<?php
for ($i=0; $i<12; $i++) {
if (isset($_POST['references_name_'.$i]) && !empty($_POST['references_name_'.$i])) {
include_get_params(DIR .'references.php?count='. $i);
} else {
break;
}
}
?>
Еще один пример динамического включения параметров GET для определенных вариантов использования. Надеюсь это поможет. Обратите внимание, что этот код не находится в полном состоянии, но этого должно быть достаточно, чтобы кто-нибудь начал хорошо работать для своего варианта использования.