- 締切済み
PHP+JSのメールフォームで、選択肢によって送信先を変更かつ別のプル
PHP+JSのメールフォームで、選択肢によって送信先を変更かつ別のプルダウンの項目を変更 はじめまして。今までレンタルのPerlCGIしか使ったことがないのですが、PHPでメールフォームを設置することになりました。ここ(http://www.office-kzm.com/7000/7100/)を参考に、シンプルなメールフォームはできたのですが、以下のことがうまくできません。 ・プルダウンAとBは連動している(Aの選択肢によってBの値が変わる) ・プルダウンAの選択肢により、メールの送信先が変わる(Bは送信先には関与しない) ・プルダウンや、ラジオボタンの値を、確認画面から戻った際に保持しておく AとBの連動だけならJavaScriptを使ってできるのですが・・・ 送信先は検索してもその仕様のプログラムの紹介ばかりで困っています。 どなたかやり方をご教授願います。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- dalianse
- ベストアンサー率35% (7/20)
Bのoptionが複数なら配列に入れればいいだけです。 hanya_hanyaは固定ですからPHPで指定する必要はありません。
- dalianse
- ベストアンサー率35% (7/20)
大体こんな感じでは? デバッグしてないですが。 <script type="text/javascript"> <!-- function post(){ document.hoge.action = "form.php"; document.hoge.submit(); } // --> </script> <?php if (isset($_POST["unyu_unyu"]) { if ($_POST["unyu_unyu"] == "AAA") { // Bの値を指定 // メールアドレスを指定 $_SESSION["email"] = "aaa@bbb.comcom"; } else if ($_POST["unyu_unyu"] == "BBB") { // Bの値を指定 // メールアドレスを指定 $_SESSION["email"] = "bbb@bbb.comcom"; } else { // Bの値を指定 // メールアドレスを指定 $_SESSION["email"] = "ccc@bbb.comcom"; } } ?> <form name="hoge" action="kakunin.php" method="post"> A <select name="unyu_unyu" onChange="post()"> <option value="ナントカ">ホニャホニャ</option> </select> B <select name="hanya_hanya"> 指定した値を出力 </select> <input type="submit" name="check_input" value="確認する"> </form>
- dalianse
- ベストアンサー率35% (7/20)
1つ目と2つ目は、Aの選択肢を選んだら、その内容を同じページにPOSTして、そのデータをifとかcaseで分岐に使って、Bの値およびメール送信先を決めればよいと思います。 3つ目は入力値をセッションに格納し、セッションに値があれば出力する、という処理でいいと思います。
お礼
ありがとうございます。すみません、PHPがまったく初心者のもので ifなどを使う構文があるのはわかるのですが、具体的にどういう記述をすればいいのかがわかりません。 メールフォームは form.php(入力)→kakunin.php(確認)→send.php(送信) の3ファイルで作っています。 一応form.phpでの仕掛けはAとBの連動のみにして、 send.phpでメールアドレスを振り分けようかと考えていたのですが dalianseさんのおっしゃるように同じページにPOSTしたとして、その後また確認画面へ入力した値を渡すことはできるのでしょうか。 今回急ぎで頼まれた仕事のため、調べても追いつかず困っています。 具体的な記述を教えていただけると助かります。 よろしくお願いします。
お礼
ありがとうございます。 何度もすみません、私の言い方が悪かったのですが、 Bの値はひとつではなく、複数になります。 Aの選択肢がaなら、Bにはa1、a2、a3の値が現れ、bならb1b2b3b4といった感じです。 また、Bのname値「hanya_hanya」は、PHP内では指定しないのでしょうか。 またお恥ずかしながら、省略されている部分の書き方がわかりません。 とりあえず書いてみてアップロードをしたら ページに問題があるとかで真っ白のページが表示されました。 (PHPの該当部分を削除したらまたページが表示されました) // メールアドレスを指定 $_SESSION["email"] = "bbb@bbb.comcom"; } else { // Bの値を指定 この場合のBの値の指定の仕方は else { if ($_POST["Aのname値"] == "CCC") { $_SESSION["email"] = "ccc@bbb.comcom"; であっているのでしょうか・・・ 基本がわかっていないのでなにもわからずすみません・・・ 再びご教授願います。