• ベストアンサー

チェックボックスで取得した値をメールに送信する

PHPでアンケートフォームを作っています。 まず、アンケートフォームでチェックボックスを、使用しました。 複数選択されたチェックボックスの値は、name属性に配列を使いactionでとんだ先の確認ページに表示させることができました。それには、for文で表示させました。 そこから、for文で取得した値をメールに送信させるにはどうしたらよいのでしょうか? どなたか、ご教授おねがいします。 質問の仕方が分かりづらかったら、申し訳ありません。

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

  • ベストアンサー
  • cojirou
  • ベストアンサー率50% (59/117)
回答No.5

>value=$os[$i]にした結果、ソースのvalueにちゃんと表示されるようになりました。 メールを送信するPHPの方にデータをおくることはできましたか? もしそうでであれば、後はメールにして送信するだけですね。 どのメール関数をご使用かわかりませんので、 mb_send_mail($to, $subject, $msg, $header); としていると仮定します。 $to は宛先、$subject はタイトル、$msg が内容、$header はヘッダー情報です。 $msg に送りたい内容を書けば良いので、$osの値を送るには、 $msg = join( "\r\n", $os ); とすれば良いのではないでしょうか。 私も詳しくはないので間違いがありましたらご指摘ください。 ご参考までに。

参考URL:
http://www.komonet.ne.jp/~php/program/chap10.htm
relax50s
質問者

お礼

こんにちは。 仮定されたとおり、 >mb_send_mail($to, $subject, $msg, $header); を使っていました。 >$msg = join( "\r\n", $os ); ビンゴ(古)です!!ちゃんと、メールに表示されて送られてきました。joinというものがあるんですね。 解決しました。ありがとうございました。

その他の回答 (4)

回答No.4

こんにちは。 よくわかりませんが、例えば・・・、 <input type="checkbox" name="aaa[]" value="A"> <input type="checkbox" name="aaa[]" value="B"> <input type="checkbox" name="aaa[]" value="C"> とあった場合、 for( $i=0; $i<count($_POST["aaa"]); $i++ ){  処理・・・ } ですよね??? (^^ゞ

relax50s
質問者

お礼

こんにちは。 > for( $i=0; $i<count($_POST["aaa"]); $i++ ){ >  処理・・・ > } for( $i=0; $i<count($aaa); $i++ ){  処理・・・ } になっていました。$_POST 付けないといけないんですね。 ありがとうございました。

  • cojirou
  • ベストアンサー率50% (59/117)
回答No.3

No.1様への補足を見て気になった点を1つ。 >print " <input type=hidden name=os[$i] value=$os>"; のvalue値が value=$os[$i] でなければうまくいかないような…。 勘違いだったらごめんなさい。 ご参考までに。

relax50s
質問者

補足

ありがとうございます。 value=$os[$i]にした結果、ソースのvalueにちゃんと表示されるようになりました。 返事が遅くなってすみませんでした。

回答No.2

こんにちは。 確認ページで値が取得できているのなら、 テキストボックスなどと同じように、 単純に値を渡してやればいいと思いますが・・・? (^^ゞ

relax50s
質問者

補足

こんにちは。回答ありがとうございます。 単純に値を渡すのができないんです…(>_<) テキストボックスの値を取得するには(前にも書いてしまいしたが)$_POST[namae]でできました。 チェックボックスの場合はどうすればいいのでしょうか? $_POST[os()]にすると、メールにはArrayとだけ送られてしまいました。書き方が違うだけなのでしょうか? 恥を承知で補足させていただきました…。

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1
参考URL:
http://php.s3.to/man/function.mail.html
relax50s
質問者

補足

回答ありがとうございます。 テキストボックスや、ラジオボタンで入力されたものは、確認ページで受け取りメール送信することができたのですが、チェックボックスの項目を確認ページからメール送信することができません。 確認ページでは、チェックボックスの項目を for( $i=0; $i<count($os); $i++ ) { print $os[$i] . "<br>\n"; print " <input type=hidden name=os[$i] value=$os>"; } としました。これは表示できましたが、メール送信ページでもfor文を使うのでしょうか? (テキストボックスで入力された氏名は、$_POST[namae]で表示させました。) よろしくお願いします。

関連するQ&A