Ich bin darauf gestoßen, als ich Ajax-Formulare erstellt habe, bei denen ich mehrere Feldsätze einbinde. Nehmen Sie zum Beispiel eine Bewerbung. Ich beginne mit einem professionellen Referenzsatz und habe eine Schaltfläche mit der Aufschrift "Add More". Dies führt einen Ajax-Aufruf mit einem $ count-Parameter durch, um den Eingabesatz erneut einzuschließen (Name, Kontakt, Telefon usw.). Dies funktioniert beim Aufruf der ersten Seite einwandfrei, da ich Folgendes mache:
<?php
include('references.php');`
?>
Der Benutzer drückt eine Taste, die einen Ajax-Aufruf ausführt. ajax('references.php?count=1');
Dann habe ich in der Datei reference.php etwas wie:
<?php
$count = isset($_GET['count']) ? $_GET['count'] : 0;
?>
Ich habe auch andere dynamische Includes wie dieses auf der gesamten Site, die Parameter übergeben. Das Problem tritt auf, wenn der Benutzer auf Senden drückt und ein Formularfehler auftritt. Um nun keinen Code zu duplizieren, um die zusätzlichen Feldsätze einzuschließen, die dynamisch enthalten waren, habe ich eine Funktion erstellt, die das Include mit den entsprechenden GET-Parametern einrichtet.
<?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]);
}
?>
Die Funktion sucht nach Abfrageparametern und fügt sie automatisch der Variablen $ _GET hinzu. Dies hat für meine Anwendungsfälle ziemlich gut funktioniert.
Hier ist ein Beispiel auf der Formularseite, wenn es aufgerufen wird:
<?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;
}
}
?>
Nur ein weiteres Beispiel für die dynamische Einbeziehung von GET-Parametern, um bestimmte Anwendungsfälle zu berücksichtigen. Hoffe das hilft. Bitte beachten Sie, dass dieser Code nicht vollständig ist, aber dies sollte ausreichen, damit jeder für seinen Anwendungsfall ziemlich gut anfängt.