代码不是';t在$.get()成功处理程序中运行


Code isn't being run inside the $.get() success handler

这是我的两个jQuery函数

$(".enable_button").click(function(){
    var server_name = $(this).attr("title");
    $.get("ajax/server_ajax.php?action=enable&server_name=" + server_name), function(data) {
        alert(data);
    }
});
$(".disable_button").click(function(){
    var server_name = $(this).attr("title");
    $.get("ajax/server_ajax.php?action=disable&server_name=" + server_name), function(data) {
        alert(data);
    }
});

很容易看出它们的作用,只需单击一个按钮,就可以通过将action参数和server_name参数传递给ajax/server_ajax.php来启用或禁用服务器。一切正常,但由于某种原因,返回的数据从未被提醒。我可以验证它是否正确地请求了PHP文件,并且PHP文件正在返回数据,正如我在Firebug的"响应"选项卡中看到的那样。

我还尝试过用document.write(data)替换警报,但这也不起作用。

有人能伸出援手吗?我一无所知。

您过早地关闭了对get()的调用。+ server_name后面的括号不应该在那里。

$.get("ajax/server_ajax.php?action=disable&server_name=" + server_name), function(data) {
                                                                    //^The ) shouldn't be here
    alert(data);
}

应该是

$.get("ajax/server_ajax.php?action=disable&server_name=" + server_name, function(data) {
    alert(data);
}); //<-- close the call to get( over here, not after server_name.

顺便说一句,但使用jQuery的ajax函数,您可以为数据传递一个对象,jQuery将从中创建查询字符串,巧妙地转义任何需要它的内容。因此,您可以这样做,这相当于您最初对disable:的调用

$.get("ajax/server_ajax.php", {"action" : "disable", "server_name" : server_name}, function(data) {
    alert(data);
});