J'ai rencontré cela lors de la création de formulaires ajax où j'inclus plusieurs ensembles de champs. Prenons par exemple une demande d'emploi. Je commence avec un ensemble de référence professionnel et j'ai un bouton qui dit "Ajouter plus". Cela fait un appel ajax avec un paramètre $ count pour inclure à nouveau le jeu d'entrées (nom, contact, téléphone .. etc.) Cela fonctionne bien lors de l'appel de la première page car je fais quelque chose comme:
<?php
include('references.php');`
?>
L'utilisateur appuie sur un bouton qui effectue un appel ajax ajax('references.php?count=1');
Ensuite, dans le fichier references.php, j'ai quelque chose comme:
<?php
$count = isset($_GET['count']) ? $_GET['count'] : 0;
?>
J'ai aussi d'autres inclusions dynamiques comme celle-ci dans tout le site qui passent des paramètres. Le problème se produit lorsque l'utilisateur appuie sur Soumettre et qu'il y a une erreur de formulaire. Alors maintenant, pour ne pas dupliquer le code pour inclure ces ensembles de champs supplémentaires qui étaient inclus dynamiquement, j'ai créé une fonction qui configurera l'inclusion avec les paramètres GET appropriés.
<?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]);
}
?>
La fonction vérifie les paramètres de requête et les ajoute automatiquement à la variable $ _GET. Cela a plutôt bien fonctionné pour mes cas d'utilisation.
Voici un exemple sur la page du formulaire lorsqu'elle est appelée:
<?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;
}
}
?>
Juste un autre exemple d'inclusion dynamique des paramètres GET pour s'adapter à certains cas d'utilisation. J'espère que cela t'aides. Veuillez noter que ce code n'est pas dans son état complet, mais cela devrait être suffisant pour que tout le monde démarre assez bien pour son cas d'utilisation.