Я пытаюсь опубликовать массив, полный флажков, и открыть его на следующей странице.
Это только дает мне последний результат, кто-нибудь знает почему? или как его исправить?
<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" />
и т. д. вниз по списку …