我从jQuery ajax请求发送表单详细信息到PHP脚本得到一个奇怪的结果。其他地方使用相同的脚本无问题。基本上,表单是使用jQuery.ajax
提交的,如下所示:
//if submit button is clicked
$('#form1').submit(function () {
//Get the data from all the fields
var name = $('input[name=name]');
var email = $('input[name=email]');
var con_email = $('input[name=con_email]');
var comments = $('textarea[name=comments]');
//organize the data properly
var data = 'name=' + name.val() + '&email=' + email.val() + '&con_email=' + con_email.val() + '&comments=' + encodeURIComponent(comments.val());
//show the loading sign
$('.loading').show();
//start the ajax
$.ajax({
//this is the php file that processes the data and send mail
url: "process-email/process.php",
//GET method is used
type: "GET",
//pass the data
data: data,
//Do not cache the page
cache: false,
//success
success: function () {
//if process.php returned 1/true (send mail success)
if (html==1) {
//hide the form
$('.form').fadeOut('slow');
$('.done').delay(1000).fadeIn('slow');
}
}
});
//cancel the submit button default behaviours
return false;
});
PHP脚本工作正常,发送电子邮件并返回1
(发送电子邮件),但脚本停在:if(html==1)
。我收到此错误
html is not defined
如上所述,完全相同的脚本在其他地方工作正常,但在这里我得到了该错误并且脚本停止了。有人可以帮助了解可能出现问题的地方吗?
答案 0 :(得分:1)
您必须添加参数参考:
success: function (html) {
//if process.php returned 1/true (send mail success)
//.....
}
然后您可以使用此参数,该参数将是来自服务器的响应。
答案 1 :(得分:1)
检查你的成功功能,应该是:
success: function (response) { //if process.php returned 1/true (send mail success) if (response == "1") { //hide the form $('.form').fadeOut('slow'); $('.done').delay(1000).fadeIn('slow'); } }
答案 2 :(得分:1)
看起来您没有将PHP脚本的响应返回给JavaScript函数。如果您为成功功能做了以下类似的事情,它应该让您走上正确的轨道:
success: function( html )
{
if(html=='1')
{
[...]
}
}