前提・実現したいこと
トップページのみのWEBサイトにお問い合わせフォームを付けたいと考えています。
送信ボタンを押すとページ遷移なしで、フォーム下部に「メッセージは正常に送信されました」と表示される仕様にするには以下ソースをどう変更すれば宜しいでしょうか?
index.html
<div class="tb-cell mail-form"> <form id="form" action="mail.php" method="post"> <div class="row"> <div class="cell"> <label>name</label> <!--cell--></div> <div class="cell"> <input type="text" name="name" required> <!--cell--></div> <!--row--></div> <div class="row"> <div class="cell"> <label>email</label> <!--cell--></div> <div class="cell"> <input type="email" name="email" required> <!--cell--></div> <!--row--></div> <div class="row"> <div class="cell"> <label>comment</label> <!--cell--></div> <div class="cell"> <textarea name="comment" required></textarea> <!--cell--></div> <!--row--></div> <div class="row"> <div class="cell"> <!--cell--></div> <div class="cell"> <button type="submit" id="sbtn" name="action" value="post">送 信</button> <button type="reset" id="rbtn">リセット</button> <!--cell--></div> <!--row--></div> </form> <!--tb-cell--></div>
mail.php
<?php $action = $_POST['action']; $name = htmlspecialchars($_POST['name']); $email = htmlspecialchars($_POST['email']); $comment = htmlspecialchars($_POST['comment']); $to = '受診するメールアドレスを入力'; $subject = 'お問い合わせ'; $message = '[お名前]'."\n".$name."\n"; $message .= '[email]'."\n".$email."\n"; $message .= '[コメント]'."\n".$comment."\n\n\n"; $header = 'From: '.$email."\r\n"; $header .= 'Reply-To: '.$email."\r\n"; if($action == "post"){ $status = mb_send_mail($to, $subject, $message, $header); if ($status) { echo '<p class="msg">メッセージは正常に送信されました</p>'; echo '<button type="button" onclick="history.go(-1)">入力フォームに戻る</button>'; } else { echo '<p class="msg">メッセージの送信に失敗しました</p>'; echo '<button type="button" onclick="history.go(-1)">入力フォームに戻る</button>'; } } ?>
html、PHPともに、インデントをつけてください。コードが非常に読みづらく、例えばタグやかっこの閉じ忘れ、閉じ位置のミスなどに気づきにくくなります。
