我正在尝试使用 PHP 向电子邮件发送一个简单的表单,但无法使实际的 ajax 函数正常工作。
这是表格:
<form id="quick-booking-form" method="post" action="#">
<input type="text" name="mail" id="mail">
<textarea name="message" id="message">
</textarea>
<input type="submit" value="Send the Message" id="SendTheForm">
</form>
然后将其发送到一个单独的 Javascript 函数,该函数包含 ajax:
$(function() {
//alert("page loaded");
$('#quick-booking-form').submit(function(event) {
event.preventDefault();
alert("Start of function");
var mail = $("#mail").val();
var message = $("#message").val();
alert("Mail: " + mail + " Message: " + message);
$.ajax({
type: "POST",
url:"process.php",
data:{
"mail": mail,
"message": message,
},
dataType: "text"
}).success(function(result){
alert(result);
//next line: end of function
}) ;
//next line: end of ajax
});
//next line: end of script
});
它应该将数据发送到这个 PHP 文件(process.php):
$msg = $_POST['message'];
$UserName = $_POST['mail'];
$contact = "Booking Manager";
$reply = "web-bookings@thesite.net";
//Subject is always...
$subject = "A message from ".$UserName;
$from = $reply;
//test data
//$contactDetails = "test@test.net";
// send message
$message = "Message reads: ".$msg;
//$to = "notify@test.com";
$to = $_POST['mail'];
//$headers = "From: " . $contact."\r\n"."Reply-To:".$reply;
$headers = "From: " . $contact;
mail($to, $subject, $message, $headers);
echo "Mail Sent.";
应该发生的是表单已提交。然后它在 validate.js 中得到验证(代码省略)。如果通过,则将表单数据发送到 process.php。这又会向 notify@test.com 发送通知消息。
当前发生的是alert("Start of Function")
火灾,显示正确值的警报也是如此。
这是目前为止。邮件功能似乎没有触发,最后一个警报也没有显示。