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