微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 使用jQuery AJAX的表单PHP不会在电子邮件中发送字段输入

我有这个联系表单,我正在尝试使用jQuery / AJAXPHP将字段输入值通过电子邮件发送给我.嗯,电子邮件发送给我很好,但没有任何字段输入.电子邮件只是PHP mail()函数的$to和$subject.请参阅下面的代码.任何想法,批评或建议都是受欢迎的.谢谢你的帮助!

$(document).ready(function() {    

$(function() {

// Get the form.
var form = $('#ajax-contact');

// Get the messages div.
//var formMessages = $('#form-messages');

// Set up an event listener for the contact form.
$("button").click(function(e) {

    // Stop the browser from submitting the form.
    e.preventDefault(e);

    // Serialize the form data.
    var formData = $(form).serialize();

    // Submit the form using AJAX.
    $.ajax({
        type: 'POST',url: $(form).attr('action'),data: formData,success: function(result){
            $('#contact-name').val('');
            $('#contact-email').val('');
            $('#contact-website').val('');
            $('#contact-message').val('');
        },error: function(xhr,status,error){

        }
    });


});

});

});

<?PHP
require_once 'swiftmailer/lib/swift_required.PHP';

//Swift Mailer script

$filter = FILTER_SANITIZE_STRING;

//Grab POST Data
$name = filter_var($_POST['contact-name'],$filter);
$email = filter_var($_POST['contact-email'],FILTER_SANITIZE_EMAIL);
$website = filter_var($_POST['contact-website'],FILTER_SANITIZE_URL);
$message = filter_var($_POST['contact-message'],$filter);


//Create email body
$body = "Name: " . $name . "<br />" . "Email: " . $email . "<br />" .   "Website: " . $website . "<br />" . "Message: " . $message;

//Create Transport
$transport = Swift_SmtpTransport::newInstance("host","port","security")
->setUsername("username")
->setPassword("password");

//Create Mailer
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance('New Form')
->setFrom(array("email" => "Lead from Contact form"))
->setTo(array('email','email' => 'Recipients'))
->setSubject('You have a new message!')
->setBody($body,'text/html');

//Send Message
$result = $mailer->send($message);

if ($result) {

//设置200(好的)响应代码.
            // http_response_code(200);
            echo“谢谢!您的邮件已发送.”;
    } else {
    //设置500(内部服务器错误)响应代码.
            // http_response_code(500);
            回声“哎呀!出了点问题,我们无法发送你的消息.”;
    }

?>

解决方法

使用val()函数从输入中获取数据

$(document).ready(function(e) {

$("button").click(function(e) {
e.preventDefault();
    var ajax = {
        isSubmitting: false,send: function() {
            if(ajax.isSubmitting == false) {

                ajax.isSubmitting = true;
                var userName = $('input[name="contact-name"]').val(); 
                var userEmail = $('input[name="contact-email"]').val(); 
                var userWebsite = $('input[name="contact-website"]').val(); 
                var userMessage = $('input[name="contact-message"]').val(); 

                if(userName === "" || userEmail === "" || userWebsite === "" || userMessage === "") {
                    alert("Please fill out all required fields.");
                } 
                else {
                    $.post("mailer3.PHP",{
                        name: userName,email: userEmail,website: userWebsite,message: userMessage

                    },function(data) {

                        ajax.isSubmitting = false;

                    });
                }
            }
            else alert("Send only 1 email at a time.");
        }
    }

});

使用$.ajax试试这个:

$("button").click(function(){
     isSubmitting: false;
     var userName = $('input[name="contact-name"]').val(); 
     var userEmail = $('input[name="contact-email"]').val(); 
     var userWebsite = $('input[name="contact-website"]').val(); 
     var userMessage = $('input[name="contact-message"]').val(); 

    if(isSubmitting == false) {

    $.ajax({url: "mailer3.PHP",type:'POST',data:{
            name: userName,message: userMessage
             },success: function(result){
               isSubmitting == true;
            },error(xhr,error){
               isSubmitting == false;
            }
    });

    }
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐