Я столкнулся с этим при создании форм Ajax, где я включаю несколько наборов полей. Взять, например, заявление о приеме на работу. Я начинаю с одного профессионального набора ссылок, и у меня есть кнопка с надписью «Добавить еще». Это делает ajax-вызов с параметром $ count, чтобы снова включить набор ввода (имя, контакт, телефон и т. Д.). Это прекрасно работает при вызове на первой странице, когда я делаю что-то вроде:
<?php
include('references.php');`
?>
Пользователь нажимает кнопку, которая делает вызов ajax <code>ajax('references.php?count=1');
Затем внутри файла reference.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
// We check for a total of 12
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 для учета определенных вариантов использования. Надеюсь это поможет. Пожалуйста, обратите внимание, что этот код не в своем полном состоянии, но этого должно быть достаточно, чтобы кто-то начал довольно хорошо для своего варианта использования.