【问题标题】:how to load() template file, pass as a variable?如何加载()模板文件,作为变量传递?
【发布时间】:2013-02-20 17:06:25
【问题描述】:

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

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

在set alert中,弹出为[object Object],没有模板。 当我将整个 php 模板内容作为 var repeater 写入 jquery 时,它可以工作,但我不希望 jquery 中的所有 html。只需 load() 然后阅读。

如果有意义的话,这里是代码

$('#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');
    }

【问题讨论】:

    标签: jquery load


    【解决方案1】:

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

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

    但是,您正在实施的想法听起来很危险:听起来您正在尝试在前端手动解析 PHP。首先,PHP 不会在被交还给你之前执行,剥离你的令牌吗?其次,使用纯 Javascript 进行模板解析是一种痛苦。 JS templating 最近获得了巨大的关注,试图使您刚才描述的任务更容易。我个人推荐Mustache,这对我来说是一个福音。

    【讨论】:

    • 现在 php 在后端渲染,然后在 Jquery 中解析空白模板,然后使用 php 中的 Data 对象进行处理,以传递带有值的变量。我想你已经解决了我们的问题。我们将测试和更新。 非常感谢巴尼,谢谢。!!!!!!!!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-23
    相关资源
    最近更新 更多