Pubblicazione di array in PHP
Domanda
Sto cercando di pubblicare un array pieno di caselle di controllo e di aprirlo nella pagina successiva ..
Mi dà solo l'ultimo risultato, qualcuno sa perché? o come risolverlo?
<form name="input" action="createevent.php" method="post">
Event title:
<input type="text" name="Eventtitle" size="20">
<br>Event Description
<input type="text" name="Description" size="20">
<br>
Please select the days that you are free to arrange this meeting.<br>
Monday
<input type="checkbox" name="day" value="Monday" />
<br />
Tuesday
<input type="checkbox" name="day" value="Tuesday" />
<br />
Wednesday
<input type="checkbox" name="day" value="Wednesday" />
<br />
Thursday
<input type="checkbox" name="day" value="Thursday" />
<br />
Friday
<input type="checkbox" name="day" value="Friday" />
<br />
Saturday
<input type="checkbox" name="day" value="Saturday" />
<br />
Sunday
<input type="checkbox" name="day" value="Sunday" />
<br /><br />
<input type="submit" value="Submit">
e indipendentemente dal numero selezionato, viene visualizzato un solo risultato nella pagina successiva. $ day = sizeof ($ _ POST ['day']);
dà sempre e solo una risposta "1". E quando li porterò alla pagina successiva, vorrò essere in grado di selezionarli separatamente.
Grazie!
Soluzione
PHP inserirà automaticamente un valore POST in un array solo se termina in []
.
Quindi devi avere name = " day [] "
anziché solo name = " day "
.
(Nota che questo funziona con qualsiasi valore POST e anche con array associativi anziché solo con auto-incremento: puoi fare name = " foo [bar] "
e tu ' d get $ _POST ['foo'] ['bar']
...)
Altri suggerimenti
Il motivo per cui stai ottenendo un solo risultato è perché stai pubblicando più campi con lo stesso nome, quindi per impostazione predefinita l'ultimo sovrascrive tutti i precedenti. Prova a creare un array nel tuo HTML in questo modo:
Monday
<input type="checkbox" name="day[]" value="Monday" />
<br />
Tuesday
<input type="checkbox" name="day[]" value="Tuesday" />
<br />
Wednesday
<input type="checkbox" name="day[]" value="Wednesday" />
e così via in basso nell'elenco ...