Mi sono imbattuto in questo durante l'esecuzione di moduli ajax in cui includo più set di campi. Prendendo ad esempio una domanda di lavoro. Comincio con un set di riferimento professionale e ho un pulsante che dice "Aggiungi altro". Questo esegue una chiamata ajax con un parametro $ count per includere di nuovo l'insieme di input (nome, contatto, telefono ... ecc.) Funziona bene sulla chiamata della prima pagina poiché faccio qualcosa del tipo:
<?php
include('references.php');`
?>
L'utente preme un pulsante che effettua una chiamata ajax ajax('references.php?count=1'); Quindi all'interno del file references.php ho qualcosa del tipo:
<?php
$count = isset($_GET['count']) ? $_GET['count'] : 0;
?>
Ho anche altri include dinamici come questo in tutto il sito che trasmettono parametri. Il problema si verifica quando l'utente preme invia e si verifica un errore del modulo. Quindi ora per non duplicare il codice per includere quei set di campi extra che dovevano essere inclusi dinamicamente, ho creato una funzione che imposterà l'inclusione con i parametri GET appropriati.
<?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 funzione verifica i parametri della query e li aggiunge automaticamente alla variabile $ _GET. Questo ha funzionato abbastanza bene per i miei casi d'uso.
Ecco un esempio sulla pagina del modulo quando viene chiamato:
<?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;
}
}
?>
Solo un altro esempio di inclusione dinamica dei parametri GET per adattarsi a determinati casi d'uso. Spero che sia di aiuto. Tieni presente che questo codice non è nel suo stato completo, ma dovrebbe essere sufficiente per far iniziare bene a chiunque il proprio caso d'uso.