Ajax jquery返回空白页面

时间:2013-01-15 19:59:27

标签: php jquery

我有这个JavaScript代码:

$(document).ready(function(){ 
           $('#sel').change(function(){

        $.ajax({
                      type: "POST", 
                      url: "modules.php?name=TransProject_Management&file=index",
                      data: "&op=index_stat&stat="+$(this).val(),
                      cache: false,
                      success: function(data) {
                         //alert(data);
                         $("#ajax_results").html(data);
                     }
                  }); 

});
});

在状态更改时,我需要刷新div而不重新加载页面。但它返回空白页面。如果我尝试通知成功的结果,我得到响应,我也检查了检查元素,它的确定。问题是它返回空白页。

我正在处理的文件与我在ajax中调用的(modules.php?name = TransProject_Management& file = index)相同。

html:

<body>
//...
<div id="ajax_results">
//.....
//somewhere here is the select option <select id="sel">......</select>
//.....
</div>
</body>

任何帮助,都将非常感激。

4 个答案:

答案 0 :(得分:1)

使用以下代码返回您的回复html:

echo json_encode(array($your_response));

然后在您的javascript中,您需要将数据引用为:

success: function(data) {
    $("#ajax_results").html(data[0]);
}

因为它现在是一个数组。

答案 1 :(得分:0)

嗯,乍一看代码看起来不错。您是否尝试过使用Chrome调试工具?按F12并选中Network选项卡,这将显示返回的内容。您也可以在不使用警报的情况下进行调试,以便逐步查看属性的确切内容。

想一想,您可能需要在返回的数据中添加“d”。无论如何,如果你按照我上面的建议做的话,在线上放一个暂停,然后运行代码就会看到你需要的东西。

答案 2 :(得分:0)

ajax函数中的

this引用jQuery XHR对象,而不是$('#sel')对象。只需在像var sel = $(this)之类的ajax函数之前将它分配给变量,然后在函数内部使用它。试试这个:

$('#sel').change(function(){
        var sel = $(this);
        $.ajax({
                      type: "POST", 
                      url: "modules.php?name=TransProject_Management&file=index",
                      data: "&op=index_stat&stat="+sel.val(),
                      cache: false,
                      success: function(data) {
                         //alert(data);
                         $("#ajax_results").html(data);
                     }
               }); 

        });
});

答案 3 :(得分:0)

根据您在问题下方的评论,您似乎使用相同的脚本来显示您的网页并使用javascript进行调用。此脚本似乎返回一个完整的html页面,从<html>标记开始。

页面只能有一个<html>标记,当您尝试在另一个页面中的元素内转储完整的html页面时,这将导致无效的HTML和不可预测的结果。

解决方案是让你的ajax脚本只返回需要插入#ajax_results的必要元素/ html,仅此而已。