之前曾问过这个问题,但没有得到答案。我有一个php文件,它将一个json对象发送到一个javascript文件,该文件应该用模板呈现它并显示在div上。问题是,函数Mustache.to_html()返回空。任何人都可以告诉我我做错了什么。这是我的代码。
{
$(":button").click(function(){
var cat = $(this).attr("name");
$.get("trier.php",{input: cat}, function(data){
alert(data);
var template = $('#templabel').html();
console.log(template);
var html = Mustache.to_html(template, data);
console.log(html);
$('#feedback2').html(data);
});
});
}
javascript将数据发送到此php文件,该文件发送回json对象
{
if(isset($_GET['input'])){
$catt = $_GET['input'];
$info = "SELECT * FROM books WHERE (Category = '$catt')";
$information = mysqli_query($conn,$info);
$arraay = array();
while($r = mysqli_fetch_assoc($information)){
$arraay[] = $r;
}
$jason = json_encode($arraay);
$jason = '{"arraay":'.$jason."}";
echo $jason;
}
}
然后,javascript文件将使用胡子模板呈现的json对象发送到html文件,发送到id =“feedback2”的标记。但是显示器是原始的json,而不是模板化的。应用Mustache.to_html函数后,第二个console.log返回一个空字符串。我做错了什么?
模板的console.log输出为
{{#arraay}}
<div>
<h2> {{Title}}</h2>
<p>{{Course}}</p>
<p>{{Category}}</p>
</div>
{{/arraay}}
并且数据的警报是 {“arraay”:[{“Title”:“Algorithms”,“Course”:“CSI241”,“Category”:“science”},{“Title”:“Fluid dynamics”,“Course”:“PHY345”, “类别”: “科学”}]}
答案 0 :(得分:0)
适合我:
var data = {"arraay":[{"Title":"Algorithms","Course":"CSI241","Category":"science"},{"Title":"Fluid dynamics","Course":"PHY345","Category":"science"}]};
var template = document.getElementById('template').innerHTML;
var html = Mustache.to_html(template, data);
document.getElementById('render').innerHTML = html;
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/mustache.js/2.2.0/mustache.min.js"></script>
<template id="template">
{{#arraay}}
<div>
<h2> {{Title}}</h2>
<p>{{Course}}</p>
<p>{{Category}}</p>
</div>
{{/arraay}}
</template>
<div id="render">
</div>
&#13;