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

时间:2011-05-24 22:46:19

标签: php jquery ajax get

这是我的两个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,点击按钮即可轻松查看其功能,启用或停用服务器。 Everthing工作,但由于某种原因,返回的数据永远不会被警告。我可以验证它是否正确请求PHP文件和PHP文件返回数据,我可以在Firebug的“响应”选项卡中看到它。

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

任何人都可以伸出援手吗?我很傻。

1 个答案:

答案 0 :(得分:3)

您过早关闭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将从中创建查询字符串,整齐地逃避任何需要它的东西。所以你可能会这样做,这相当于你原来的禁用呼叫:

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