Вопрос
Я пытаюсь опубликовать массив, полный флажков, и открыть его на следующей странице.
Это дает мне только последний результат, кто-нибудь знает, почему?или как это исправить?
<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».И когда я перенесу их на следующую страницу, я захочу иметь возможность выбирать их отдельно.
Спасибо!
Решение
PHP автоматически преобразует значение POST в массив только в том случае, если оно заканчивается на []
.
Итак, вам нужно иметь name="day[]"
вместо того, чтобы просто name="day"
.
(Обратите внимание, что это работает для любого значения POST, а также с ассоциативными массивами вместо простого автоматического приращения — вы можете сделать name="foo[bar]"
, и вы получите $_POST['foo']['bar']
...)
Другие советы
Причина, по которой вы получаете только один результат, заключается в том, что вы публикуете несколько полей с одним и тем же именем, поэтому по умолчанию последнее перезаписывает все предыдущие.Попробуйте создать массив в своем 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" />
и так далее по списку...