我试图找到在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字符串,然后我们输出到一个元素?
答案 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)
: - )