jquery ajax页面内容填充

时间:2014-03-08 10:07:50

标签: jquery ajax

这种工作流程的最佳做法是什么?

例如,我有以下html页面结构:

<div id="one">
    <span id="sp1"></span>
    <span id="sp2"></span>
    ...
    <div id="inner"></div>
    ...
</div>

使用以下jquery代码将html数据填充到div #one:

$.get('/scripts/contajax.php', function(data){

    var addhtml = data,
        sp1cont = addhtml.replace(/.*<sp1>(.*)</sp1>.*/,'$1'),
        sp2cont = addhtml.replace(/.*<sp2>(.*)</sp2>.*/,'$1'),
        inncont = addhtml.replace(/.*<inn>(.*)</inn>.*/,'$1');

    $('#sp1').html(sp1cont);
    $('#sp2').html(sp2cont);
    $('#inner').html(inncont);

});

基本上,/ script / signjax.php生成html代码:
   <sp1>...</sp1><sp2>...</sp2><inn>...</inn>

然后查询解析此代码并将块插入HTML页面。 我使用正确的方法吗?还是有更好的解决方案?

1 个答案:

答案 0 :(得分:1)

JSON和XML是这项工作的最佳选择。

由于我不太了解如何处理XML,我将尝试解释JSON的用法。

contajax.php中,使用适当的数据填充数组:

$myArray = array();
$myArray["sp1"] = "sp1Content"; // no html tags, just values
$myArray["sp2"] = "sp2Content";
$myArray["inn"] = "innContent";

等等。之后,将数组打印为json:

echo json_encode($myArray);

在您的脚本中,调用.getJSON()而不是.get()并将值插入html,如下所示:

$.getJSON('/scripts/contajax.php', function(data){
   $('#sp1').html(data.sp1);
   $('#sp2').html(data.sp2);
   $('#inner').html(data.inn);
}

您可以随时在data

的功能中致电JSON.stringify(data);,在控制台中看到getJSON