Eu encontrei isso ao fazer formulários Ajax onde incluo vários conjuntos de campos. Tomemos, por exemplo, um pedido de emprego. Eu começo com um conjunto de referência profissional e tenho um botão que diz "Adicionar mais". Isso faz uma chamada ajax com um parâmetro $ count para incluir o conjunto de entrada novamente (nome, contato, telefone etc.). Isso funciona bem na chamada de primeira página, pois faço algo como:
<?php
include('references.php');`
?>
O usuário pressiona um botão que faz uma chamada ajax. ajax('references.php?count=1');
Então, dentro do arquivo reference.php, eu tenho algo como:
<?php
$count = isset($_GET['count']) ? $_GET['count'] : 0;
?>
Também tenho outras inclusões dinâmicas como essa em todo o site que passam parâmetros. O problema ocorre quando o usuário pressiona enviar e ocorre um erro de formulário. Portanto, agora, para não duplicar o código para incluir os conjuntos de campos extras que foram incluídos dinamicamente, criei uma função que configurará a inclusão com os parâmetros GET apropriados.
<?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]);
}
?>
A função verifica os parâmetros de consulta e os adiciona automaticamente à variável $ _GET. Isso funcionou muito bem para meus casos de uso.
Aqui está um exemplo na página do formulário quando chamado:
<?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;
}
}
?>
Apenas outro exemplo de inclusão de parâmetros GET dinamicamente para acomodar certos casos de uso. Espero que isto ajude. Observe que este código não está em seu estado completo, mas isso deve ser o suficiente para que qualquer pessoa comece bem em seu caso de uso.