Javascript Ajax停留在beforeSend阶段,不向PHP发送数据
我在这里有一点问题——我对PHP非常熟悉,但我是一个与jquery和ajax相关的新手,我有一个问题,我现在正在忙一个星期,所以我想知道你是否能帮我。 我有一个很大的表单,大约有25个字段需要用户填写,以便在我的网站上创建他们的个人资料页面。我使用jquery验证所有必需的字段,并希望使用Ajax将数据发布到PHP,然后PHP将数据插入数据库的表中。 问题是Ajax被困在beforeSend例程中,不会将字段的值发送到PHP,也不会插入任何内容。我做错了什么 这是我的密码: 表单有一个id creaform,代码包含一堆验证代码,所有这些代码都有效,与问题无关,所以我省略了Javascript Ajax停留在beforeSend阶段,不向PHP发送数据,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我在这里有一点问题——我对PHP非常熟悉,但我是一个与jquery和ajax相关的新手,我有一个问题,我现在正在忙一个星期,所以我想知道你是否能帮我。 我有一个很大的表单,大约有25个字段需要用户填写,以便在我的网站上创建他们的个人资料页面。我使用jquery验证所有必需的字段,并希望使用Ajax将数据发布到PHP,然后PHP将数据插入数据库的表中。 问题是Ajax被困在beforeSend例程中,不会将字段的值发送到PHP,也不会插入任何内容。我做错了什么 这是我的密码: 表单有一个id cr
$(document).ready(function() {
$("#createbtn").click(function (e) {
var self = this;
$.ajax({
type : "POST",
url : "profilereg.php",
data : $('#creaform').serialize(),
beforeSend : function() {
$(self).hide();
$('#creastatus').html( "<img src='mysuperduperanimatedgif.gif'/>" );
},
success : function(html){
var response = "Your data has been saved. You will now be taken to your profile page.
$('#creastatus').html( response );
}
});
}
});
});
再说一次,这有什么问题-它被困在动画gif的beforeSend显示中。当我删除beforeSend时,它什么都不做。任何帮助都将不胜感激:谢谢
约翰试着换衣服
var response = "Your data has been saved. You will now be taken to your profile page.
到
您似乎缺少结束引号,这将导致脚本错误
$(document).ready(function() {
$("#createbtn").click(function (e) {
$.ajax({
type : "POST",
url : "profilereg.php",
data : $('#creaform').serialize(),
beforeSend : function() {
$(self).hide();
$('#creastatus').html( "<img src='mysuperduperanimatedgif.gif'/>" );
},
success : function(html){
var response = "Your data has been saved. You will now be taken to your profile page.";
$('#creastatus').html( response );
}
});
});
});
很抱歉这么晚才回来找你们-最近几天很忙。我已经解决了这个问题,将它变成了一篇标准的HTML和PHP文章,并附带了一些jquery功能,让用户感觉ajax正在做这件事。它在提交之前等待,显示一个请等待的东西,然后他们重定向到它应该去的页面。它在所有表中插入数据,只有一个表除外,但我会解决这个问题。同时,非常感谢您的回复和为解决这个问题所做的努力。谢谢 添加一个错误函数,然后使用浏览器中js控制台的结果编辑您的问题:错误:functionjqXHR,textStatus,errorhown{console.logtextStatus,errorhown;},除非您在某处自定义:$self.hide;将尝试隐藏窗口对象,并且您的success方法中缺少一个双引号和一个额外的花括号,这将导致错误,并且您的ajax方法将不会立即执行all@Patrick$self引用了这个按钮,我在脚本的开头定义了这个按钮-忘记将它添加到示例中了。我现在就这样做。谢谢添加了自变量的定义。如果打字错误不是问题所在,那么您必须按照user574632的建议执行操作,并添加一个错误函数,检查控制台是否有错误日志仍然缺少var响应行上的双引号。我尝试了,但不幸的是,它仍然无法显示beforeSend图像。也尝试了,并且不幸的是,结果是一样的:
var response = "Your data has been saved. You will now be taken to your profile page."
$(document).ready(function() {
$("#createbtn").click(function (e) {
$.ajax({
type : "POST",
url : "profilereg.php",
data : $('#creaform').serialize(),
beforeSend : function() {
$(self).hide();
$('#creastatus').html( "<img src='mysuperduperanimatedgif.gif'/>" );
},
success : function(html){
var response = "Your data has been saved. You will now be taken to your profile page.";
$('#creastatus').html( response );
}
});
});
});