在PHP中发布数组

时间:2009-01-09 19:51:57

标签: php arrays post

我正在尝试发布一个充满复选框的数组,并在下一页打开它。

它只给我最后的结果,有谁知道为什么?或者如何解决它?

<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'答案。当我将它们带到下一页时,我希望能够单独选择它们。

谢谢!

2 个答案:

答案 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" />
列表中的

依旧......