javascript - AJAX 联系表单的 PHP 代码

标签 javascript php jquery ajax forms

我试图使用 jQuery AJAX 和 PHP 制作一个联系表单。我的HTML如下

<form action="#" id="contactForm" method="post" name="contactForm">
<fieldset>
    <div class="col-sm-12">
        <input id="contactName" name="contactName" placeholder="Your Name*" type="text" value="" required>
    </div>

    <!-- Name Field [ END ] -->

    <div class="col-sm-12">
        <input id="contactEmail" name="contactEmail" placeholder="Your Email*" type="email" value="" required>
    </div>

    <!-- Email Field [ END ] -->

    <div class="col-xs-12">
        <textarea cols="5" id="contactMessage" name="contactMessage" placeholder="Your Message....*" required></textarea>
    </div>

    <!-- Message Field [ END ] -->

    <div class="col-xs-12">
        <button class="submit">SEND</button>
    </div>

    <!-- Submit Button [ END ] -->

    <div class="error col-xs-12">
        <h3>Sorry! Your message was not sent.</h3>
    </div>

    <!-- Error Message [ END ] -->

    <div class="success col-xs-12">
        <h3>Success! Your message was sent.</h3>
    </div>

    <!-- Seccess Message [ END ] -->

</fieldset>

而jQuery代码如下

$('form#contactForm').submit(function () {

    var url = $('#contactForm').attr('action'),
        type = $('#contactForm').attr('method'),

        contactName = $('#contactForm #name').val(),
        contactEmail = $('#contactForm #email').val(),
        contactMessage = $('#contactForm #message').val(),
        data = {
            name: contactName,
            email: contactEmail,
            message: contactMessage
        };

    $.ajax({
        type: type,
        url: url,
        data: data,
        success: function () {
            $('.success').fadeIn();
            $('.error').fadeOut();
        },
        error: function () {
            $('.error').fadeIn();
            $('.success').fadeOut();
        }
    });
    return false;
});

什么可能的 PHP 代码可以使该表单正常工作。我正在使用以下代码

 <?php

    if ( isset( $_POST['name'], $_POST['email'], $_POST['message'] ) ) {

        $to = 'mail@example.com'; //my email address here
        $subject = 'Message From :' . $_POST['name'];
        $message = $_POST['message'];
        $headers = 'From :' . $_POST['email'].'\r\n';

        mail($to,$subject,$message,$headers);

    }
?>

但它不起作用。显示成功消息但未收到邮件。 我对 PHP 不太熟悉。

请帮忙......

最佳答案

您的成功消息显示是因为php页面调用成功,这并不表明邮件发送成功。您应该通过返回邮件功能响应来检查这一点:

$response = mail($to,$subject,$message,$headers);
echo $response;

这将返回 true 或 false。此外,您还必须检查邮件是否被正确接收,它可能最终成为垃圾邮件,或者由于各种原因被您的邮件服务器拒绝。如果是这种情况,您可以对邮件 header 进行一些添加。 Here are some pointers关于如何获取邮件

关于javascript - AJAX 联系表单的 PHP 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32135944/

相关文章:

javascript - 带小数点分隔符的 HTML 数字输入问题

php header 方法不重定向

javascript - Google map 多个协同工作的下拉过滤器

javascript - 在不知道如何排除故障的情况下替换 c# 函数 bij Jquery 不工作

javascript - getBoundingClientRect 返回错误的结果

javascript - 追加 UIWebView

javascript - html转json获取div数据

javascript - 如何在表单中显示错误信息

php - 代码点火器缓存?

javascript - PHP 中的 explode/内爆数组