我有这个联系表单,我正在尝试使用jQuery /
AJAX和
PHP将字段输入值通过电子邮件发送给我.嗯,电子邮件发送给我很好,但没有任何字段输入.电子邮件只是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] 举报,一经查实,本站将立刻删除。