Natknąłem się na to podczas tworzenia formularzy Ajax, w których dołączam wiele zestawów pól. Weźmy na przykład podanie o pracę. Zaczynam od jednego profesjonalnego zestawu referencyjnego i mam przycisk z napisem „Dodaj więcej”. Wykonuje wywołanie ajax z parametrem $ count, aby ponownie dołączyć zestaw danych wejściowych (imię i nazwisko, kontakt, telefon itp.). Działa to dobrze przy wywołaniu pierwszej strony, ponieważ robię coś takiego:
<?php
include('references.php');`
?>
Użytkownik naciska przycisk wywołujący wywołanie Ajax ajax('references.php?count=1');
Następnie w pliku referencji.php mam coś takiego:
<?php
$count = isset($_GET['count']) ? $_GET['count'] : 0;
?>
W całej witrynie mam też inne dynamiczne dołączenia, które przekazują parametry. Problem występuje, gdy użytkownik naciśnie przycisk Prześlij i wystąpi błąd formularza. Więc teraz, aby nie powielać kodu w celu uwzględnienia tych dodatkowych zestawów pól, które były dołączane dynamicznie, utworzyłem funkcję, która skonfiguruje dołączenie z odpowiednimi parametrami 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]);
}
?>
Funkcja sprawdza parametry zapytania i automatycznie dodaje je do zmiennej $ _GET. To zadziałało całkiem nieźle w moich przypadkach użycia.
Oto przykład na stronie formularza po wywołaniu:
<?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;
}
}
?>
Kolejny przykład dynamicznego włączania parametrów GET w celu dostosowania do niektórych przypadków użycia. Mam nadzieję że to pomoże. Należy pamiętać, że ten kod nie jest w pełnym stanie, ale powinno to wystarczyć, aby każdy mógł zacząć całkiem dobrze w swoim przypadku użycia.