我有一个HTML表单。当用户按下sumbit
时,jQuery会将数据发送到带有数据的php脚本( send.php )。
在 send.php 文件中,我创建了一个php对象:
$mail = new PHPMailer(true);
然后我尝试抓住:
try {
$mail->IsSMTP();
// ........ code for host, usr/psw, body, header ........
$mail->Send();
echo "Ok, Sent!\n";
} catch (phpmailerException $e) {
echo $e->errorMessage();
}
它向我发送邮件,但我不知道消息echo "Ok, Sent!\n";
在哪里......它在哪里?我什么都看不到。应该在哪里?我希望在提交button
下显示,例如,如果输入不正确,它可以显示:
数据不正确
这是发送电子邮件
如果正确发送,请发送邮件
:
好的,已发送!
我该怎么办?
更新 这是index.html页面中的jQuery代码:
$('form').submit(function() {
var event_data = encodeURIComponent( $("#event").text() );
var formID = $(this).attr('id');
var formDetails = $('#'+formID);
$.ajax({
type: "POST",
url: 'send.php',
data: formDetails.serialize() + "&event=" + event_data,
success: function (data) {
},
error: function(jqXHR, text, error){
$('#result').html(error);
}
});
return false;
});
答案 0 :(得分:1)
如果你是从jQuery ajax请求调用它,它将在jQuery接收的响应体中,这将在浏览器的inspector / dev控制台中显示。
答案 1 :(得分:1)
将您的AJAX代码更改为以下内容:
$('form').submit(function() {
var event_data = encodeURIComponent( $("#event").text() );
var formID = $(this).attr('id');
var formDetails = $('#'+formID);
$('#result').html('sending...'); // changing the text before sending mail...
$.ajax({
type: "POST",
url: 'send.php',
data: formDetails.serialize() + "&event=" + event_data,
success: function (data) {
$('#result').html(data); // this will show the output of the page send.php
console.log(data); //this will also show the output of the page in the browser console.
},
error: function(jqXHR, text, error){
$('#result').html(error);
}
});
return false;
});
和 send.php 是这样的:
try {
$mail->IsSMTP();
// ........ code for host, usr/psw, body, header ........
if($mail->Send()){
echo "Ok, Sent!\n";
}
} catch (phpmailerException $e) {
echo $e->errorMessage();
}