Размещение массива в PHP - PullRequest
14 голосов
/ 09 января 2009

Я пытаюсь разместить массив, полный флажков и открыть его на следующей странице ..

Это дает только последний результат, кто-нибудь знает почему? или как это исправить?

<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 ]

31 голосов
/ 09 января 2009

PHP будет автоматически преобразовывать значение POST в массив, если оно оканчивается на [].

Так что вам нужно иметь name="day[]" вместо name="day".

(Обратите внимание, что это работает для любого значения POST, а также с ассоциативными массивами вместо простого автоинкремента - вы можете сделать name="foo[bar]" и вы получите $_POST['foo']['bar'] ...)

7 голосов
/ 09 января 2009

Причина, по которой вы получаете только один результат, заключается в том, что вы публикуете несколько полей с одинаковыми именами, поэтому по умолчанию последнее перезаписывает все предыдущие. Попробуйте создать массив в своем 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" />

и так далее вниз по списку ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...