簡體   English   中英

當我單擊“提交”按鈕時,我的電子郵件未發送為什么?

[英]when i click on submit button my email is not send why?

當我單擊提交按鈕時,它將向我顯示來自javascript文件的消息,但不會轉到我生成的php文件。

這是我的HTML代碼

<form method="post" id="contactForm" action="email_send.php">
        <div class="clearfix">
            <div class="grid_6 alpha fll">
                <input type="text" name="senderName" id="senderName" placeholder="Name *" class="requiredField" />
            </div>
            <div class="grid_6 omega flr">
                <input type="text" name="senderEmail" id="senderEmail" placeholder="Email Address *" class="requiredField email" />
            </div>
        </div>
        <div>
            <textarea name="message" id="message" placeholder="Message *" class="requiredField"></textarea>
        </div>
        <input type="submit" id="sendMessage" name="sendMessage" value="Send Email" />
    <span>  </span>
</form><!-- end form -->

我的js文件

if ($("#contactForm")[0]) {
    $('#contactForm').submit(function () {
        $('#contactForm .error').remove();
        $('#contactForm .requiredField').removeClass('fielderror');
        $('#contactForm .requiredField').addClass('fieldtrue');
        $('#contactForm span strong').remove();
        var hasError = false;
        $('#contactForm .requiredField').each(function () {
            if (jQuery.trim($(this).val()) === '') {
                var labelText = $(this).prev('label').text();
                $(this).addClass('fielderror');
                $('#contactForm span').html('<strong>*Please fill out all fields.</strong>');
                hasError = true;
            } else if ($(this).hasClass('email')) {
                var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
                if (!emailReg.test(jQuery.trim($(this).val()))) {
                    var labelText = $(this).prev('label').text();
                    $(this).addClass('fielderror');
                    $('#contactForm span').html('<strong>Is incorrect your email address</strong>');
                    hasError = true;
                }
            }
        });
        if (!hasError) {
            $('#contactForm').slideDown('normal', function () {
                $("#contactForm #sendMessage").addClass('load-color');
                $("#contactForm #sendMessage").attr("disabled", "disabled").addClass("btn-success").val('Sending message. Please wait...');
            });
            var formInput = $(this).serialize();
            $.post($(this).attr('action'), formInput, function (data) {
                $('#contactForm').slideUp("normal", function () {
                    $(this).before('<div class="notification-box notification-box-success"><p><i class="fa fa-check"></i>Thanks!</strong> Your email was successfully sent. We check Our email all the time.</p></div>');
                });
            });
        }
        return false;
    });
}

我寫的關於我的PHP文件是

<?php 

if(isset($_POST['senderName']) && isset($_POST['senderEmail']) && isset($_POST['message']) )
{

    $senderName = $_POST['senderName'];
    $senderEmail = $_POST['senderEmail'];
    $message = $_POST['message'];

    if(!empty($senderName) && !empty($senderEmail) && !empty($message))
    {
        if(strlen($senderName)>25 || strlen($senderEmail)>25 || strlen($message)>50 )
        {
            echo 'Maximum length reached for each field';
        } 
        else
        {
            $to = 'info@courtpiece.com';
            $subject = 'Court Piece Rung';
            $body = "Name:".$senderName."\n"."Message: ".$message;
            $header = 'From'.$senderEmail;

            if(@mail($to,$subject,$body,$header))
            {
                echo 'Thanks for Contacting Us.We\'ll in touch soon. ';
            }
            else
            {
                echo 'Sorry an error occured ';
            }
        }
    }
    else
    {
        echo 'All fields are required. ';
    }       
}

?>

有時這可能會造成問題。.您正在使用: if(isset($_POST['senderName']) && isset($_POST['senderEmail']) && isset($_POST['message']) ){

代替:

if(isset($_POST['sendMessage'])){
if(!empty($_POST['senderName']) && !empty($_POST['senderEmail'])){

CODE HERE
}
} 

如果不是,那么您可能錯過了電子郵件發送服務的配置。 嘗試對電子郵件發送進行測試。 mail()

您將需要禁止表單的默認行為,以便它也不會向您的服務器發送請求。 您可以通過調用事件參數.submit(function(e)....的prevendDefault函數來完成此操作

if ($("#contactForm")[0]) {
    $('#contactForm').submit(function (e) {
        e.preventDefault(); //to suppress the behaviour of your Form -> you will send data manually with $.post
        $('#contactForm .error').remove();
        $('#contactForm .requiredField').removeClass('fielderror');
        $('#contactForm .requiredField').addClass('fieldtrue');
        $('#contactForm span strong').remove();
        var hasError = false;
        $('#contactForm .requiredField').each(function () {
            if (jQuery.trim($(this).val()) === '') {
                var labelText = $(this).prev('label').text();
                $(this).addClass('fielderror');
                $('#contactForm span').html('<strong>*Please fill out all fields.</strong>');
                hasError = true;
            } else if ($(this).hasClass('email')) {
                var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
                if (!emailReg.test(jQuery.trim($(this).val()))) {
                    var labelText = $(this).prev('label').text();
                    $(this).addClass('fielderror');
                    $('#contactForm span').html('<strong>Is incorrect your email address</strong>');
                    hasError = true;
                }
            }
        });
        if (!hasError) {
            $('#contactForm').slideDown('normal', function () {
                $("#contactForm #sendMessage").addClass('load-color');
                $("#contactForm #sendMessage").attr("disabled", "disabled").addClass("btn-success").val('Sending message. Please wait...');
            });
            var formInput = $(this).serialize();
            $.post("email_send.php", formInput, function (data) {
                $('#contactForm').slideUp("normal", function () {
                    $(this).before('<div class="notification-box notification-box-success"><p><i class="fa fa-check"></i>Thanks!</strong> Your email was successfully sent. We check Our email all the time.</p></div>');
                });
            });
        }
        return false;
    });
}

我必須說,您建立此驗證的方式還有待改進。 嘗試使用我添加的內容再次運行該表單。

回報!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM