現在、HTMLでメール送信フォームを作成し、フォームに打ち込まれた内容をPHPの送信完了画面に送ってメールを送信するWebアプリを作成しています。
コードはそれぞれ、以下のように記述しております。
remindmailform.html <!DOCTYPE html> <html lang="ja" dir="ltr"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0"> <style> @media screen and (min-width:480px){ /*画面幅が781px以上の時*/ h2 { color: red; margin-left: 175px; } label { margin-right: 5px; font-weight: bold; } label+input {margin-bottom: 5px;} .long { width: 300px; } .form-group { position: relative; } #submit { position: relative; top:10px; left:225px; } .footer {margin-left: 195px;} } @media screen and (max-width:480px){ /*画面幅が480pxまでの時*/ h2 { color: red; text-align: center; } label { margin-right: 2px; font-weight: bold; } label+input {margin-bottom: 5px;} textarea {width:300px;} .long { width: 250px; } .form-group { position: relative; } #submit { position: relative; top:10px; left:110px; } .footer {text-align: center;} } </style> <title>リマインドメールフォーム</title> </head> <body> <h2>連絡メールフォーム</h2> <form action="mailsended.php" method="post"> <div class="form-group"> <label for="name">連絡者名</label> <input type="text" id="name" class="long" name="name"><br> <label for="yourEmail">連絡者のメールアドレス</label> <input type="text" id="yourEmail" class="long" name="yourEmail"><br> <br> <label for="what">件名</label> <input type="text" id="what" class="long" name="what"><br> <label for="moment">連絡事項</label><br> <textarea id="moment" name="moment" rows="10" cols="80" required></textarea><br> <label for="date">日時</label> <input type="text" id="date" name="date"><br> <label for="place">場所</label> <input type="text" id="place" class="long" name="place"><br> <label for="bring">持参物</label> <input type="text" id="bring" class="long" name="bring"><br> <label for="remark">備考</label><br> <textarea id="remark" name="remark" rows="3" cols="80"></textarea><br> <br> <label for="email">送信先メールアドレス</label> <input type="text" id="email" class="long" name="email" required><br> <br> </div> <input id="submit" type="submit" name="submit" value="この内容で送信する"> </form> <br> <br> <div class="footer"> <small> © 2020 <b>Sunny Boots Project</b> </small> </div> </body> </html>
mailsended.php <!DOCTYPE html> <html lang="ja" dir="ltr"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0"> <style> a {text-decoration: none} @media screen and (min-width:480px){ /*画面幅が781px以上の時*/ h3 { color: red; margin-left: 175px; } a button {margin-left: 170px;} .footer {margin-left: 170px;} } @media screen and (max-width:480px){ /*画面幅が480pxまでの時*/ h3 { color: red; text-align: center; } a button {text-align: center;} .footer {text-align: center;} } </style> <title>リマインドメール送信完了画面</title> </head> <body> <h3>メールを送信しました!</h3> <?php // 送信者名 $name=$_POST["name"] ; $name=htmlspecialchars($name) ; // 伝達事項 $moment=$_POST["moment"] ; $moment=htmlspecialchars($moment) ; // 日時 $date=$_POST["date"] ; $date=htmlspecialchars($date) ; // 場所 $place=$_POST["place"] ; $place=htmlspecialchars($place) ; // 持ち物 $bring=$_POST["bring"] ; $bring=htmlspecialchars($bring) ; // 備考 $remark=$_POST["remark"] ; $remark=htmlspecialchars($remark) ; // 送信先アドレス $to=$_POST["email"] ; $to=htmlspecialchars($to) ; // 送信者のアドレス $yourEmail=$_POST["yourEmail"] ; $yourEmail=htmlspecialchars($yourEmail) ; // 件名 $subject=$_POST["what"] ; $subject=htmlspecialchars($subject) ; // 内容 $msg="$moment\n"."\n". // if(empty($date)){"\n"}else{"【日時】:$date\n"}. "【日時】:$date\n". // if(empty($place)){"\n"}else{"【場所】:$place\n"}. "【場所】:$place\n". // if(empty($bring)){"\n"}else{"【持参物】:$bring\n"}. "【持参物】:$bring\n"."\n". "$remark\n"."\n". "【送信者】:$name\n"; // メール送信関数 mb_internal_encoding("UTF-8"); mb_send_mail($to,$subject,$msg,'From:'.$yourEmail); ?> <a href="remindmailform.html"><button type="button" name="return"> リマインドメールフォームに戻る </button></a> <br> <br> <div class="footer"> <small> © 2020 <b>Sunny Boots Project</b> </small> </div> </body> </html>
ここまで作成し、メールの送受信も問題なく行えていることを確認したのですが、必要と感じ追加したい機能があります。
概ね件名の通りなのですが、
①.送信フォーム側の「この内容で送信する」ボタンを押した後に以下のようなアラート画面を表示するためには、どんなJavascriptの記述が必要でしょうか。
====================
!確認!
この内容で送信します。よろしいですか?
「はい」「いいえ」
====================
(「はい」を押すと正式に送信され、「いいえ」ならばキャンセルされてフォーム入力画面に戻る)
②.送信フォーム側の、日時・場所・持参物のいずれかについて何も入力していない場合、送信されたメール本文で、【日時】【場所】【持参物】(これらのうち、フォームに何も入力されていないもの)の記述を省略するためには、php側にはどんな記述が必要でしょうか。
お手数ですが、ご回答をお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/22 11:54
2020/01/22 12:53