dポイントプレゼントキャンペーン実施中!

PHP+JSのメールフォームで、選択肢によって送信先を変更かつ別のプルダウンの項目を変更

はじめまして。今までレンタルのPerlCGIしか使ったことがないのですが、PHPでメールフォームを設置することになりました。ここ(http://www.office-kzm.com/7000/7100/)を参考に、シンプルなメールフォームはできたのですが、以下のことがうまくできません。

・プルダウンAとBは連動している(Aの選択肢によってBの値が変わる)
・プルダウンAの選択肢により、メールの送信先が変わる(Bは送信先には関与しない)
・プルダウンや、ラジオボタンの値を、確認画面から戻った際に保持しておく

AとBの連動だけならJavaScriptを使ってできるのですが・・・
送信先は検索してもその仕様のプログラムの紹介ばかりで困っています。
どなたかやり方をご教授願います。

A 回答 (3件)

Bのoptionが複数なら配列に入れればいいだけです。


hanya_hanyaは固定ですからPHPで指定する必要はありません。
    • good
    • 0

大体こんな感じでは?


デバッグしてないですが。
<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>
    • good
    • 0
この回答へのお礼

ありがとうございます。

何度もすみません、私の言い方が悪かったのですが、
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";

であっているのでしょうか・・・

基本がわかっていないのでなにもわからずすみません・・・
再びご教授願います。

お礼日時:2010/06/01 13:45

1つ目と2つ目は、Aの選択肢を選んだら、その内容を同じページにPOSTして、そのデータをifとかcaseで分岐に使って、Bの値およびメール送信先を決めればよいと思います。


3つ目は入力値をセッションに格納し、セッションに値があれば出力する、という処理でいいと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。すみません、PHPがまったく初心者のもので
ifなどを使う構文があるのはわかるのですが、具体的にどういう記述をすればいいのかがわかりません。

メールフォームは form.php(入力)→kakunin.php(確認)→send.php(送信) の3ファイルで作っています。
一応form.phpでの仕掛けはAとBの連動のみにして、
send.phpでメールアドレスを振り分けようかと考えていたのですが
dalianseさんのおっしゃるように同じページにPOSTしたとして、その後また確認画面へ入力した値を渡すことはできるのでしょうか。

今回急ぎで頼まれた仕事のため、調べても追いつかず困っています。
具体的な記述を教えていただけると助かります。
よろしくお願いします。

お礼日時:2010/06/01 08:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!