• ベストアンサー

複数チェックボックスの内容の受け取り

formタグの中にfor文がありにチェックボックスが複数表示されます。この内容をPOSTで受け取るにはどのように書いたらいいですか??教えてください

質問者が選んだベストアンサー

  • ベストアンサー
  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.5

#1です。 そのままの構文で受け取りはできます。 回答のソースは、データ送信と受取をやるものだと考えてください。 できればそのソースがどのような意味で記述されたものかを読み取れるようになればスキルがあがるのでがんばってください。 受け取るだけならば、 for($i=1;$i<=10;$i++){ $input_name = "check" .$i; print $_POST[$input_name]; } で受け取ったデータを書き出します。 checkboxのNameを固定の(動かしたくない、順番を変えたくない、チェックされてない値も調べたい等)場合は#1で、順番はどうでもいい場合は#2さんのを使用すればいいと思います。

その他の回答 (4)

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.4

こんにちは。 必要ありません。 for ( $i = 0; $i < 10; $i ++ ) { print "<input type=\"check[]\" value=\"$i\">\n"; } しいていうならバリュー値を変えてあげれば、何がチェックされたか わかります。

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.3

こんにちは。 PHPの場合特に変数を明示する必要はありません。 しいて行うなら $ch = array(); 普通に受け取るならfor文は必要ありません。 下で書いたとおり $ch = $_POST['check']で取得できます。 その後の処理によりfor文は使うかもしれませんが。

eccschool
質問者

補足

$jを変数でfor文でまわしているんですが<input type="checkbox" name="check[]" value="1">を <input type="checkbox" name="check[<?=$j ?>]" value="1">としなくて良いんでしょうか?

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

こんにちは。 <input type="checkbox" name="check[]" value="">として $_POST['check']に配列として入ってきます。 例えば、for文で10回上のinputを繰り返せば $ch = $_POST['check']; $ch[0]~$ch[9]にvalueの値が入ります。

eccschool
質問者

補足

PHPなので配列の宣言は必要ですか? あと受け取る時にもfor文はいりますか??

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1

print "<form method=\"POST\">"; for($i=1;$i<=10;$i++){ $input_name = "check" .$i; print "<input type=\"checkbox\" name=\"$input_name\""; if ($_POST[$input_name]) { print " checked"; } print "><br>\n"; } print "<input type=\"submit\" value=\"送信\">\n"; print "</form>\n"; 多分動くと思います。

eccschool
質問者

補足

受け取るほうではどうしたら良いですか??

関連するQ&A