如何加载()模板文件,传递为变量?

时间:2013-02-20 17:06:25

标签: jquery load

我正在使用php,并且需要将此模板内容php文件加载()到jquery中并将其传递给#div ID以呈现前端视图。

我不确定如何在jquery中加载php文件,然后将其作为一个名为repeater的变量传递,这有助于构建组合加载了Ajax(obj)查询结果的模板的所有行。

在设置警报中,它弹出为[对象对象],没有模板。 当我将整个php模板内容写入jquery作为var repeater时,它可以工作,但我不想在jquery中使用所有html。只需加载()然后阅读。

如果这有任何意义,这是代码

$('#pageContent').load('../includes/OrderLookup.php #pageContent');
alert ($('#pageContent').load('OrderLookup.html #pageContent'));
var url = $('#pageContent').load('../includes/OrderLookup.php');
var page = '<div id="pageContent"></div>';
var repeater = $('#pageContent').load('OrderLookup.html #pageContent');

var pageBuildUp='';
for (x in dataArray){
     pageBuildUp += obj.repeater;
    //alert(obj.repeater);
    //pageBuildUp += url;
    pageBuildUp = pageBuildUp.replace('##transactionId##',makeTextSmall(dataArray[x]['blockvalue'],20));
    if (dataArray[x]['description']==''){
        pageBuildUp = pageBuildUp.replace('##orderTotal##','no total amount');
    }

1 个答案:

答案 0 :(得分:0)

当您使用jQuery的load指定URL和DOM片段标识符时,它会返回DOM片段,这就是它作为对象发出警报的原因。我的猜测是你期待一个字符串?为此,您需要将以var repeater开头的行更改为以下内容:

var repeater = $('#pageContent').load('OrderLookup.html #pageContent')[0].outerHTML;

然而,你实现的想法听起来很危险:听起来你正试图在前端手动解析PHP。首先,在递回给你之前,不会执行PHP,剥离你的令牌吗?其次,使用普通的Javascript进行模板解析是一件痛苦的事。 JS templating最近获得了巨大的吸引力,试图让你刚才描述的任务变得更容易。我个人推荐Mustache,这对我来说是一个福音。