Pergunta
Eu estou tentando postar uma gama completa de caixas de seleção e para abri-lo na próxima página ..
Ele só me dá o último resultado, ninguém sabe por quê? ou como corrigi-lo?
<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 não importa quantos você selecioná-lo só dá um único resultado na próxima página. $ Dia = sizeof ($ _ POST [ 'dia']);
sempre apenas dá resposta '1'. E quando eu levá-los para a próxima página eu quero ser capaz de selecionar-los separadamente.
Obrigado!
Solução
PHP vai fazer apenas automaticamente um valor POST em uma matriz se ele termina em []
.
Então, você precisa ter name="day[]"
em vez de apenas name="day"
.
(Note que isso funciona para qualquer valor POST, e também com matrizes associativas em vez de apenas auto-incrementando - você pode fazer name="foo[bar]"
, e você deseja obter $_POST['foo']['bar']
...)
Outras dicas
A razão que você está recebendo apenas um resultado é porque você está postando vários campos com o mesmo nome assim por padrão o último substitui todos os anteriores. Tente criar uma matriz no seu HTML assim:
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 assim por diante para baixo na lista ...