- ベストアンサー
メールフォームでラジオボタンとチェックボックスの選択結果を送信可能?
- メールフォームで送信するために、ラジオボタンとチェックボックスの選択結果を結合し、一緒に送信することはできるのか疑問です。
- 具体的には、ラジオボタンとチェックボックスの選択結果をメールフォームにて送信する方法を教えてほしいです。
- また、必須項目やその他のフォーム項目についても解説していただけると幸いです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
すいません、再びです。もしphpをご使用になられる場合のためにphp側のタグのサンプルとphp側のサンプルファイルの全文を掲載しておきます。 #タグは下記のように送信が完了したら、スタートページに戻るボタンのタグです。 <input type='button' value='戻る' onclick='top.location.href=\"index.html\"' > #もし、レンタルサーバーにアップロードする場合は「PHP可」と書いてあってもメール送信が出来ないところもありますので注意してください。 #$from(送る人のメールアドレスも入れないとエラーになってしまいます。)できれば <input name="mail" class="form-textline01" maxlength="100" value=""type="text"> の"mail"でポストしてください。 #UTF-8とかJisとか何も指定しないと、結構文字化けしますのでできればサンプルのように指定してください。 PHP側のサンプルの全文です。 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>phpメール</title> </head> <body> <?php mb_language("japanese"); //各値 $to ="送信先メールアドレス"; $subject = "テスト"; $b=$_POST['hi'];//合計金額 $c=$_POST['properties'];//checkboxの値'<input type='button' value='戻る' >' //checkboxの配列をforeachする foreach ($c as $d){ @$body.=$d; } $body.=$b;//checkboxの値に合計金額をたす $from ="送るひとのメールアドレス"; //メール送信 if (mb_send_mail($to,$subject,$body,"From:".$from)){ echo "メールが送信されました。"."<input type='button' value='戻る' onclick='top.location.href=\"index.html\"' >"; } else { echo "メールの送信に失敗しました。"; } ?> </body> </html>
その他の回答 (3)
- 田中 裕之(@bybalsendercase)
- ベストアンサー率88% (56/63)
再び失礼します。 「合計金額を計算」「合計」の値を <form name="js" action="mail.php" method="post"> に渡すサンプルも作成しました。 html側 <body> <form name="nForm">項目6<br> オプションがあれば選択して下さい。(複数選択可)<br> <input name="bx1" value="1" type="checkbox">1<br> <input name="bx1" value="1" type="checkbox">2<br> <input name="bx1" value="1" type="checkbox">3<br> <input name="bx1" value="1" type="checkbox">4<br> <input value="合計金額を計算" onclick="ttlValue()" type="button"><br> <br> 合計<input name="result" size="10" type="text"> </form> <script type="text/javascript"> function ttlValue(){ var chn = 4; ttl = 0; for(i=0; i<chn; i++) { if(document.nForm.elements[i].checked) { ttl+=1; } } document.nForm.result.value = ttl; document.js.hi.value = ttl; } </script> <form name="js" action="mail.php" method="post"> メダルの項目:<br> <input name="properties[]" value="マラソン" type="checkbox"> マラソン <input name="properties[]" value="体操" type="checkbox"> 体操 <input name="properties[]" value="水泳" type="checkbox"> 水泳 <input name="properties[]" value="サッカー" type="checkbox"> サッカー <input name="properties[]" value="フットサル" type="checkbox"> フットサル<br> <br> <input type="hidden" name="hi"> <input type="submit" value="送信" > </form> </body> php側 <?php mb_language("japanese"); mb_internal_encoding("UTF-8"); //各値 $to ="メールアドレス"; $subject = "テスト"; $b=$_POST['hi'];//合計金額 $c=$_POST['properties'];//checkboxの値 // foreach ($c as $d){ @$body.=$d; } $body.=$b;//checkboxの値に合計金額をたす $from ="メールアドレス"; //メール送信 if (mb_send_mail($to,$subject,$body,"From:".$from)){ echo "メールが送信されました。"; } else { echo "メールの送信に失敗しました。"; } ?>
お礼
追記とともにありがとうございました。
- fujillin
- ベストアンサー率61% (1594/2576)
form本来の機能を利用するのが妥当ではないでしょうか。 いずれにしろサーバでの処理を予定しているようですので、入力内容をそのままサーバに送信し、サーバ側で一括処理するのがよろしいのではないでしょうか。 そのためには、各タグのtype、name、valueなどを適切に設定しておく必要があります。 その上でformをsubmitすれば、データがそのままサーバへ送られますので、Javascriptでの処理は不要になるでしょう。(スクリプトはユーザがオフにしていれば、実行されません。) メール送信もサーバ側から行えますので、そのように処理なさればよろしいかと。
お礼
Javascript無しで行うことが出来るのですね・・・ 調べてみます・・・ ご回答ありがとうございました!
- 田中 裕之(@bybalsendercase)
- ベストアンサー率88% (56/63)
こんにちは http://okwave.jp/qa/q8072037.html 上記の値はJavaScriptで<form method="post" action="CGIのURI">の中にハイドで渡しておきます。 checkboxの値は <input name="properties[]" value="マラソン" type="checkbox"> マラソン properties[]のように配列にすると valueの値がphpファイルに渡されます。 php側では普通にforeachすると値を取り出すことができます。 サンプル html側 <form action="mail.php" method="post"> メダルの項目:<br> <input name="properties[]" value="マラソン" type="checkbox"> マラソン <input name="properties[]" value="体操" type="checkbox"> 体操 <input name="properties[]" value="水泳" type="checkbox"> 水泳 <input name="properties[]" value="サッカー" type="checkbox"> サッカー <input name="properties[]" value="フットサル" type="checkbox"> フットサル<br> <br> <input type="submit" value="送信" > </form> php側 <?php mb_language("japanese"); mb_internal_encoding("UTF-8"); //各値 $to ="メールアドレス"; $subject = "テスト"; $c=$_POST['properties']; foreach ($c as $d){ @$body.=$d; } $from ="メールアドレス"; //メール送信 if (mb_send_mail($to,$subject,$body,"From:".$from)){ echo "メールが送信されました。"; } else { echo "メールの送信に失敗しました。"; } ?>
お礼
ご回答ありがとうございます。 HTMLはまだ初心者なので、新たな疑問が出来たのですが、 php側のタグは、どこに入力したらよろしいでしょうか?
お礼
ご回答ありがとうございます。 あれから、本を買ってPHPについて勉強してみました。 少し難しい話ですね・・・・ もっと勉強してみます。