如何操纵Ajax返回的内容

时间:2014-01-30 15:44:38

标签: php ajax

在进行ajax调用时,如何返回远程文档的一部分?相反,我得到整个页面,我很有兴趣操纵这个返回的数据并将其加载到特定的位置而不是..

例如:

$.ajax({

 type: "POST",

 url: "includes/search.php",

 beforeSend: function () {

 $( "#Loader" ).html('loading..');

},

 data: {t : t, r: r},

 success: function (e) {

    $( "#table" ).html(e); 

这将返回search.php的整个HTML内容,而我希望能够定位特定的Div,我选择在哪里加载它们。类似于:

$( "#result" ).load( "ajax/test.html #container" );

我想回来:

$( "#table" ).load( "#table" ); // Load the Div #table from search.php into Div #table of current document

$( "#header" ).load( "#Stats" ); // ect.. load #Stats in current #Header...

},
    error: function(xhr, error){
    console.debug(xhr); console.debug(error);;
 }
 });

我在过滤数据表时使用此功能并根据选择fecthing查询统计信息...谢谢

2 个答案:

答案 0 :(得分:1)

您可能希望获取这些结果的JSON(或XML)版本,而不是尝试使用javascript将html解析为块。


在您的includes / search.php

修改它(或创建一个search_json.php,或其他),以便它输出JSON而不是标记。

如何做到这一点取决于它正在做什么,但作为一般规则,你想要将信息加载到关联数组中,然后使用PHP对它执行json_encode()。

http://us3.php.net/manual/en/function.json-encode.php

然后在客户端使用$ .parseJSON(),它会将其拆分为一个标准的javascript对象,您可以随意使用它。

http://api.jquery.com/jquery.parsejson/

答案 1 :(得分:0)

这个帖子完全回答了我的想法。我希望它对某人有帮助。 Answer