Me encontré con esto al hacer formularios ajax donde incluyo varios conjuntos de campos. Tomando por ejemplo una solicitud de empleo. Empiezo con un conjunto de referencia profesional y tengo un botón que dice "Agregar más". Esto hace una llamada ajax con un parámetro $ count para incluir el conjunto de entrada nuevamente (nombre, contacto, teléfono, etc.). Esto funciona bien en la llamada de la primera página, ya que hago algo como:
<?php
include('references.php');`
?>
El usuario presiona un botón que hace una llamada ajax ajax('references.php?count=1');
Luego, dentro del archivo referencias.php tengo algo como:
<?php
$count = isset($_GET['count']) ? $_GET['count'] : 0;
?>
También tengo otras inclusiones dinámicas como esta en todo el sitio que pasan parámetros. El problema ocurre cuando el usuario presiona enviar y hay un error de formulario. Entonces, ahora para no duplicar el código para incluir esos conjuntos de campos adicionales que se incluyeron dinámicamente, creé una función que configurará la inclusión con los parámetros GET apropiados.
<?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 función busca parámetros de consulta y los agrega automáticamente a la variable $ _GET. Esto ha funcionado bastante bien para mis casos de uso.
Aquí hay un ejemplo en la página del formulario cuando se llama:
<?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;
}
}
?>
Otro ejemplo más de cómo incluir parámetros GET de forma dinámica para adaptarse a determinados casos de uso. Espero que esto ayude. Tenga en cuenta que este código no está en su estado completo, pero esto debería ser suficiente para que cualquiera pueda comenzar bastante bien en su caso de uso.