Я зіткнувся з цим, виконуючи форми 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
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 для врахування певних випадків використання. Сподіваюся, це допомагає. Зверніть увагу, що цей код не в повному стані, але цього повинно бути достатньо, щоб хтось розпочав досить добре для свого випадку використання.