0

私のウェブサイトのフォームは、シンプルな連絡フォームです。ページをリロードせずにフォームが送信/失敗したときに、同じページに「成功と失敗」のメッセージをフォームに表示したいと思います。これを行うにはAjaxを使用する必要があることは理解していますが、機能させることができません。失敗したと言い続けますが、フォームは送信され、受信トレイにあります。

ここに私が取り組んでいるコードがあります。

Html (単一ページのデザイン):

<form accept-charset="UTF-8" action="" class="form" id="contactus" method="post" name="contactus">
  <label for="nametag">Namn*</label> <input id="name" name="name" type="text" value=""> 
  <label for="emailtag">Email*</label> <input id="email" name="email" type="text" value=""> 
  <label for="phonetag">Telefon</label> <input id="phone" name="phone" type="text" value=""> 
  <label for="messagetag">Meddelande*</label><br>
  <textarea id="message" name="message" style="width: 87%; height: 200px;"></textarea> 
<label class="placeholder">&nbsp;</label> <button class="submit" name="submit">Skicka</button>
</form>

<script>

        $(function() {
                $('#contactus').submit(function (event) {
                    event.preventDefault();
                    event.returnValue = false;
                    $.ajax({
                        type: 'POST',
                        url: 'php/mail.php',
                        data: $('#contactus').serialize(),
                        success: function(res) {alert(res);
                            if (res == 'successful') {
                                $('#status').html('Sent').slideDown();
                            }
                            else {
                                $('#status').html('Failed').slideDown();
                            } 
                        },
                        error: function () {
                            $('#status').html('Failed').slideDown();
                        }
                    });
                });
            });
</script>

Php:

<?php
    $name = $_POST['name'];
    $email = $_POST['email'];
    $phone = $_POST['phone'];
    $message = $_POST['message'];
    $recipient = "info@mydomain.com";
    $subject = "Webbkontakt";
    $formcontent = "Från: $name <br/> Email: $email <br/> Telefon: $phone <br/> Meddelande: $message";

    $headers = "From: " ."<info@mydomain.com>" . "\r\n";
    $headers .= "Reply-To: ". "no-reply@mydomain.com" . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=utf-8\r\n";

    if(mail($recipient, $subject, $formcontent, $headers))
    {
        echo "successful";
    }
    else
    {
        echo "error";
    }
?>
4

1 に答える 1