gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 00:20:03 24 4
gpt4 key购买 nike

我有这个联系表格,我正在尝试使用 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 "谢谢!您的信息已发送。"; } 别的 { //设置 500(内部服务器错误)响应代码。 //http_response_code(500); echo "糟糕!出了点问题,我们无法发送您的消息。";

?>

最佳答案

使用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,
email: userEmail,
website: userWebsite,
message: userMessage
},
success: function(result){
isSubmitting == true;
},error(xhr,status,error){
isSubmitting == false;
}
});

}
});

关于javascript - 使用 jQuery AJAX PHP 的表单不会在电子邮件中发送字段输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29887089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com