我的网站上有一个联系表单,当用户输入信息并点击提交时,我正在尝试实现发送到电子邮件功能。因此,理想情况下,联系表格中的信息应在提交后通过电子邮件发送给我。我正在尝试实现的是使用jQuery,AJAX和我从这里的教程获得的PHP邮件程序脚本:http://blog.teamtreehouse.com/create-ajax-contact-form
问题是,当我点击提交时,没有任何反应,没有任何重定向,说明有错误或告诉我它是成功的。唯一要做的就是清除表单字段。我在该网站的评论中读到了邮件程序脚本需要某个版本的PHP,但我对PHP和后端开发并不熟悉。我知道有些东西不见了,只是不确定是什么。似乎缺少某些通信,我没有收到任何javascript错误。所有id和name属性都匹配我的.html,.js和.php文件。文件也会上传到Bluehost(目前托管网站的位置)。我是否需要在Bluehost中的某处安装新的PHP版本?任何帮助表示赞赏。谢谢!
$(document).ready(function(e) {
//e.preventDefault();
$("button").click(function(e) {
var ajax = {
isSubmitting: false,
send: function() {
if(ajax.isSubmitting == false) {
ajax.isSubmitting = true;
var userName = $("input [name=contact-name]");
var userEmail = $("input [name=contact-email]");
var userWebsite = $("input [name=contact-website]");
var userMessage = $("input [name=contact-message]");
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.");
}
}
});
});
PHP
<?php
//PHP Mailer Script
if(count($_POST) > 0) {
$name = $_POST['name'];
$email = $_POST['email'];
$website = $_POST['website'];
$message = $_POST['message'];
$header = "Content-Type: text/html\r\nReply-To:: $email\r\nFrom: $name <$email>";
$body =
@"Email sent from ".$_SERVER['REMOTE_ADDR']." at ".date("d/m/Y H:i",time())."<br />
<hr />
$message
<hr />
Email end";
if(mail("andrew@ajcwebcreations.com", "You have a new message.", $message, $header)) {
die("true");
} else {
die("Error sending message.");
}
}
?>
安德鲁
答案 0 :(得分:0)
从头开始并收到要发送的电子邮件,但输入信息仅包含在电子邮件中。如果我无法弄明白,也许会针对该问题发布另一个问题。感谢所有花时间添加输入的人!