通过AJAX动态显示大量的html

时间:2014-11-26 19:49:20

标签: javascript php jquery html ajax

我试图找到在AJAX调用后动态显示HTML的批次的最合理方法。我们目前得到一个json数组,然后只创建一个包含数组值的HTML字符串,然后将所有内容吐出到$(" #ell")。html(),但字符串很大。

这是关注的问题;我们在javascript变量中得到了100行<div><spans>等,这使得jquery字符串动态插入一个大而丑的新订单条目,如下所示:

var newEntry = "<div class='sale-box' id='saleBox"+respObj[i]["id"]+"'>"
                                +"<div style='width: 100%; float: left;'>"
                                    +"<b><center>Invoice Number "+respObj[i]["invoiceNumber"]+"</b>"
                                    +"<a href='https://www.bluescentric.com/mgmt/log-entries.php?i="+respObj[i]["id"]+"'>"
                                    +" <i>(See History Log)</i></a></center>"
                +a hundred more lines... literally. 

有没有更好的方法从javascript显示大量的HTML?现在,似乎我们的两个选择是1)只是让php创建整个&#34;&#34;结构并将其发送到javascript,或2)获取数组变量并将它们插入一个大的,长的javascript字符串,然后我们输出到一个元素?

1 个答案:

答案 0 :(得分:1)

使用模板系统或创建简单的模板系统。使用包含以下内容的html文件的函数get_file_contents

<table><tr><td>{{column_1}}</td><td>{{column_2}}</td></table>

然后使用javascript作为ajax请求来检索文件并使用类似

的内容
var template = "string of template from php";
var interpolated_template = template.interpolate({column_1:'something',column_2:'something2'});

interpolate是扩展String的String.prototype.interpolate = function ...原型函数,因此任何字符串都可以使用语法"String".interpolate(args_as_object)

插入变量

: - )