我正在尝试发布一个充满复选框的数组,并在下一页打开它。
它只给我最后的结果,有谁知道为什么?或者如何解决它?
<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">
并且无论你选择多少,它只会在下一页上给出一个结果。 $ day = sizeof($ _ POST ['day']);
只给出'1'答案。当我将它们带到下一页时,我希望能够单独选择它们。
谢谢!
答案 0 :(得分:31)
如果数据以[]
结尾,PHP将自动将POST值转换为数组。
因此,您需要name="day[]"
而非name="day"
。
(请注意,这适用于任何POST值,也适用于关联数组而不仅仅是自动递增 - 您可以执行name="foo[bar]"
,然后获得$_POST['foo']['bar']
...)< / p>
答案 1 :(得分:7)
您获得一个结果的原因是因为您发布了多个具有相同名称的字段,因此默认情况下,最后一个字段会覆盖所有以前的字段。尝试在HTML中创建一个数组,如下所示:
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" />
列表中的依旧......