14

チェックボックスでいっぱいの配列を投稿して、次のページで開こうとしています。

それは私に最後の結果を与えるだけです、誰かが理由を知っていますか?またはそれを修正する方法は?

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

いくつ選択しても、次のページに1つの結果しか表示されません。$ day = sizeof($ _ POST ['day']);

「1」の答えしか出ません。そして、それらを次のページに移動するときに、それらを個別に選択できるようにしたいと思います。

ありがとう!

4

2 に答える 2

31

で終わる場合、PHP は自動的に POST 値を配列にし[]ます。

name="day[]"したがって、ただの代わりに持つ必要がありますname="day"

(これは、任意の POST 値に対して機能することに注意してください。また、自動インクリメントだけでなく、連想配列でも機能することに注意してname="foo[bar]"ください$_POST['foo']['bar']

于 2009-01-09T19:59:46.080 に答える
7

結果が1つしかない理由は、同じ名前の複数のフィールドを投稿しているため、デフォルトでは最後のフィールドが前のすべてのフィールドを上書きするためです。次のように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" />

リストの下など...

于 2009-01-09T19:58:55.923 に答える