質問
チェックボックスでいっぱいの配列を投稿し、次のページで開きます。
それは私に最後の結果を与えるだけです、誰もが理由を知っていますか?またはそれを修正する方法は?
<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」の回答のみが表示されます。そして、次のページに移動したときに、それらを個別に選択できるようにしたいと思います。
ありがとう!
解決
PHPは、 []
で終わる場合にのみ自動的にPOST値を配列にします。
したがって、 name =&quot; day&quot;
の代わりに、 name =&quot; day []&quot;
が必要です。
(これはすべてのPOST値で機能し、自動インクリメントの代わりに連想配列でも機能することに注意してください- name =&quot; foo [bar]&quot;
を実行できます。 d get $ _ POST ['foo'] ['bar']
...)
他のヒント
結果が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" />
など、リストの下に...
所属していません StackOverflow