我尝试确认已使用JSON发送了一封电子邮件,然后使用ajax对该事件进行了导航,并在屏幕上显示了一条成功消息。 问题是电子邮件没有被发送,我被重定向到“已发送”:因为php脚本的第一部分,我才会这样做。 html和css还可以,我已经测试了很多。 我真正想要的是用PHP发送电子邮件,而不是使用ajax显示成功或错误消息。问题是我这是第一次使用php而我找不到正确的方法。我不会问这个问题,但我必须在今晚之前交付这个项目,这是最后要做的事情。 您可以在以下邮件中查看:[{3}}下的电子邮件地址链接。
JS:
$ajax({
"type":"POST",
"url":"sendemail1.php",
"data": { name1: name1Val, emailFrom1: emailFrom1Val, comments: commentsVal},
"dataType":'json',
"success":function(response){
if (response.sended){
alert ("Mail Sended ok"); //Code after mail send
}else{
alert (response.error); //Code or allert on error
}
},
error: function (xhr, ajaxOptions, thrownError){
alert(xhr.status+" "+thrownError);
}
PHP:
$send = @mail($mailTo, $subject, $message, "From: ".$mailFrom1);
if ($send){
echo mail($mailTo, $subject, $message, "From: ".$mailFrom1) ? '{"sended":true}':'{"sended":false,"error":"Mail send fail."}';
}else{
echo '{"sended":false,"error":"Request Error."}';
};
答案 0 :(得分:1)
首先,我发现代码中存在错误
$.ajax({
^ "type":"POST",
| "url":"sendemail1.php",
| "data": { name1: name1Val, emailFrom1: emailFrom1Val, comments: commentsVal},
"dataType":'json',
"success":function(response){
if (response.sended){
alert ("Mail Sended ok"); //Code after mail send
}else{
alert (response.error); //Code or allert on error
}
},
----------->error: function (xhr, ajaxOptions, thrownError){
alert(xhr.status+" "+thrownError);
// should be
----------->"error": function (xhr, ajaxOptions, thrownError){
alert(xhr.status+" "+thrownError);
}
答案 1 :(得分:1)
你的ajax请求中有很多错误,所以我从头开始编写,下面的脚本至少会处理ajax请求。
$(function(){
name1Val = 'CaptureName';
emailFrom1Val = 'CaptureEmail';
commentsVal = 'CaptureComments';
parameters = 'name1=' + name1Val + '&emailFrom1=' + emailFrom1Val + '&comments=' + commentsVal;
$.ajax({
type: "POST",
url: "sendmail.php",
data: parameters,
error: function(response){
alert(response);
},
success: function(response){
alert(response);
}
});
});