在PHP中发布数组

use*_*344 14 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">
Run Code Online (Sandbox Code Playgroud)

无论你选择多少,它只会在下一页上给出一个结果.$ day = sizeof($ _ POST ['day']);

只给出'1'答案.当我将它们带到下一页时,我希望能够单独选择它们.

谢谢!

Dav*_*vid 31

PHP只会在结束时自动将POST值转换为数组[].

所以你需要name="day[]"而不仅仅是name="day".

(请注意,这适用于任何POST值,也适用于关联数组而不仅仅是自动递增 - 您可以这样做name="foo[bar]",而且您会得到$_POST['foo']['bar']......)


Wal*_*ess 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" />
Run Code Online (Sandbox Code Playgroud)

等等......