Php jquery:ajax请求不工作

Php jquery:ajax请求不工作,php,jquery,ajax,Php,Jquery,Ajax,当我尝试从jquery发出此ajax请求时,没有收到任何响应: /******************************** CHANGE USER SETTINGS *********************************/ $(".submitUserSetting").live('click', function() { //get values var department = $("#us_department").val(); var s

当我尝试从jquery发出此ajax请求时,没有收到任何响应:

/********************************
CHANGE USER SETTINGS
*********************************/

$(".submitUserSetting").live('click', function() {

    //get values
    var department = $("#us_department").val(); 
    var sortOrder = $("input[@name=us_sortOrder]:checked").val();

    $.ajax({
        type: "POST", 
        url: "lib/includes/updateUserSettings.php",
        data: "empname=" + empname + "&department=" + department + "&sortOrder=" + sortOrder,
        success: function(data) { 
            alert(data);
        }
    });


});
我什么都不是。没有javascript错误,MySQL查询没有错误,甚至没有在console.log中发布数据。只是嘲弄沉默。即使我注释掉PHP页面中的所有代码,只回显发送给它的数据,也没有任何结果。这是PHP页面(类存在,函数工作,我在十几个其他页面上使用它们)


您需要在php函数中返回一些值

您需要在php函数中返回一些值

您如何判断没有收到错误?将错误处理程序添加到.ajax()调用:


你怎么知道你没有出错?将错误处理程序添加到.ajax()调用:


问题在于您发送数据的方式

尝试将属性封装在
{}的
中,并将变量格式更改为

{ "propertyName" : "value", "propertyName" : "value" } 
i、 e

或者,如果它是一种形式,你甚至可以说

data : { $("#form").serialize() }

问题在于您发送数据的方式

尝试将属性封装在
{}的
中,并将变量格式更改为

{ "propertyName" : "value", "propertyName" : "value" } 
i、 e

或者,如果它是一种形式,你甚至可以说

data : { $("#form").serialize() }

好的,进一步的调查表明,错误实际上是在您正在使用的代码片段的特殊组合中

显然,
href=“javascript:void(0)”
会阻止事件传播。事件是在元素本身上触发的(因此与
绑定的处理程序。单击(fn)
工作),但不会通知祖先元素该事件

由于您使用的是依赖于事件传播的
.live()
方法,因此在这里不起作用

我建议改为:

<a href="#" class="submitUserSetting btn">Submit</a>

好的,更多的调查表明,错误实际上是在您使用的代码片段的特殊组合中

显然,
href=“javascript:void(0)”
会阻止事件传播。事件是在元素本身上触发的(因此与
绑定的处理程序。单击(fn)
工作),但不会通知祖先元素该事件

由于您使用的是依赖于事件传播的
.live()
方法,因此在这里不起作用

我建议改为:

<a href="#" class="submitUserSetting btn">Submit</a>


什么是
empname
。更新时,在表字段中使用单引号,例如:
updateusers SET department…
您的站点是否公开?如果是这样,您是否可以发布一个指向问题页面的链接?如果您为
失败
事件添加了处理程序,是否会显示任何内容?检查使用以查看是否曾经发出请求。此外,您的代码看起来有点容易受到SQL注入攻击!我们可以看到包含“submitUserSetting”类元素的标记,以及调用“live”调用的位置吗?什么是
empname
。更新时,在表字段中使用单引号,例如:
updateusers SET department…
您的站点是否公开?如果是这样,您是否可以发布一个指向问题页面的链接?如果您为
失败
事件添加了处理程序,是否会显示任何内容?检查使用以查看是否曾经发出请求。此外,您的代码看起来有点容易受到SQL注入攻击!我们可以看到包含“submitUserSetting”类元素的标记,以及调用“live”调用的位置吗?我的措辞很糟糕,显然有一个错误,因为它不起作用,我只是在通常的位置没有看到一个。将代码放在那里,我仍然没有得到任何消息,没有对抛出的错误发出警报,没有数据警报…grrrrI猜测下一步是找Fiddler检查帖子和回复。我的措辞很糟糕,显然有一个错误,因为它不起作用,我只是在平常的地方没有看到一个。把你的代码放在那里,我仍然没有收到任何关于抛出错误的警报,没有数据警报…grrrrI猜测下一步是让Fiddler检查帖子和回复。我是(echo)!success或“!fail”);我是(echo)!success或“!fail”);我试过了,但还是一无所获。我可以在AJAX调用之前的任何地方发出警报(“ok”),但在调用之后的任何地方都好像js被忽略了一样。您是否尝试过使用$.post而不是$.AJAX?它仍然使用$.ajax,但在某些版本中,直接的$.ajax调用出现了错误。尝试过这一点后,仍然一无所获。我可以在AJAX调用之前的任何地方发出警报(“ok”),但在调用之后的任何地方都好像js被忽略了一样。您是否尝试过使用$.post而不是$.AJAX?它仍然使用$.ajax,但在某些版本中,直接的$.ajax调用有缺陷
<a href="#" class="submitUserSetting btn">Submit</a>
$(".submitUserSetting").live('click', function(e) {
    e.preventDefault(); // disable the link action

    [snip]
});