- ベストアンサー
チェックボックスのデータ受け渡し
アンケートフォームを作成しています。 アンケートの中で、チェックボックスを利用して業種を選んでもらう項目を作ろうと思うのですが、取得したデータの確認表示が上手くいかなくて困っています。 フォームの流れとしては 入力画面→確認画面→送信完了画面 と言う流れになります。 入力画面で下記のようなフォームを作ったのですが、確認画面で表示させる方法を教えていただきたいと思います。 <form name="form1" method="post" action="input.php"> <input name='check[] 'type='checkbox' id='check'value='飲食業'> 飲食業 <input name='check[] 'type='checkbox' id='check' value='小売業'> 小売業 <input name='check[] 'type='checkbox' id='check' value='サービス業'> サービス業 <input name='check[] 'type='checkbox' id='check' value='建築・不動産業'> 建築・不動産業 <input name='check[] 'type='checkbox' id='check' value='コンサルティング業'> コンサルティング業 <input name='check[] 'type='checkbox' id='check' value='その他'> その他 </form> 業種選択の他にも名前や会社名などの項目もあり、それらはセッションを利用し確認画面へ受け渡しています。 この業種選択の項目も、その他の項目と同じようにセッションを利用し、確認画面へ受け渡すことは可能でしょうか? 『飲食業、小売業、その他』のように、チェックしたもの全てを確認表示するような形にしたいのですが・・・ 宜しくお願いします
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
とりあえずこんな感じで変数に落として、foreachでまわしてみてください (今回は再帰的な例ですが、プログラム部分をinput.phpに書けば 別ファイルでも受けられます) <?PHP $check=$_REQUEST['check']; $str=""; if(is_array($check)) foreach($check as $val){ $str.=($str==""?"":"、").$val; } if($str!="") print $str."がチェックされました<br>"; print <<<eof <form name="form1" method="post" action="{$_SERVER['PHP_SELF']}"> <input name='check[]' type='checkbox' id='check' value='飲食業'> 飲食業 <input name='check[]' type='checkbox' id='check' value='小売業'> 小売業 <input name='check[]' type='checkbox' id='check' value='サービス業'> サービス業 <input name='check[]' type='checkbox' id='check' value='建築・不動産業'> 建築・不動産業 <input name='check[]' type='checkbox' id='check' value='コンサルティング業'> コンサルティング業 <input name='check[]' type='checkbox' id='check' value='その他'> その他 <input type='submit' value='送る'> </form> eof; ?>
その他の回答 (1)
- hrm_mmm
- ベストアンサー率63% (292/459)
どこまで解っているのかよくわからないが、 たぶん、受け取り時の多次元配列を理解してないのではなかろうかと思われる。 <input name='check[]' type='checkbox' id='check' value='飲食業'> であれば $_POST['check'][0],$_POST['check'][1],, にチェックされた個数分のデータが入っているはず。 ところで、'check[] ' とブランクが最後に入っていると、上記のようには動作しないと思うんだけど、そのせい? また、htmlタグの属性値とその次の属性値との間には、きちんと半角ブランクが必要ですし。
お礼
早速の回答ありがとうございます。 仰るとおり理解していないのだと思います。本格的にPHPをやるのが今回初めてなもので・・・ 教えていただいたようにやってみましたが、やはり表示させることが出来ませんでした。 注意いただいた部分はコピーのミスでした。ご指摘ありがとうございました。
お礼
大変参考になりました。 ありがとうございました。