Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax停留在beforeSend阶段,不向PHP发送数据_Javascript_Php_Jquery_Mysql_Ajax - Fatal编程技术网

Javascript Ajax停留在beforeSend阶段,不向PHP发送数据

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

我在这里有一点问题——我对PHP非常熟悉,但我是一个与jquery和ajax相关的新手,我有一个问题,我现在正在忙一个星期,所以我想知道你是否能帮我。 我有一个很大的表单,大约有25个字段需要用户填写,以便在我的网站上创建他们的个人资料页面。我使用jquery验证所有必需的字段,并希望使用Ajax将数据发布到PHP,然后PHP将数据插入数据库的表中。 问题是Ajax被困在beforeSend例程中,不会将字段的值发送到PHP,也不会插入任何内容。我做错了什么

这是我的密码:

表单有一个id creaform,代码包含一堆验证代码,所有这些代码都有效,与问题无关,所以我省略了

    $(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 );

        }

        });

    });

});