因此,我正在开发一个管理面板,以帮助工作人员管理我正在构建的Web应用程序的数据。我想使用Handlebars模板为数据库中的不同表构建不同的管理面板。但是,我甚至无法使用测试模板。我看过很多不同的教程(如果有帮助的话我会使用4.0.5)但是它不会填充那个div。当我测试它时,JSON数组和模板都会写到控制台,因此它们就在那里。还有其他我想念的东西吗?
HTML
<?php
require 'GetJson.php';
?>
<body>
<div id="nameList"></div>
<script id="listOutNames" type="text/x-handlebars-template">
<table class="table">
{{#each NamesList}}
<tr>
<td>{{{Name}}}</td>
</tr>
{{/each}}
</table>
</script>
<script src='js/jQuery/jquery-2.2.1.min.js'></script>
<script src='js/handlebars-v4.0.5.js'></script>
<script src='js/EditNameList.js'></script>
</body>
JS
var source = $("#listOutNames").html();
var template = Handlebars.compile(source);
var data = <?php echo json_encode(array('NameList'=>$NamesList)) ?>;
$("#nameList").append(template(data));
PHP
<?php
require 'auth.php';
$link = mysqli_connect($hostname,$username,$password,$database,3306);
$query = "select Name from Names order by NameID";
$result = mysqli_query($link, $query) or die(Mysqli_error($link));
$NamesList = array();
while($row = mysqli_fetch_array($result)){
$NamesList[] = array('Name' => $row['Name']);
}
mysqli_close($link);
?>
PHP脚本生成:
{"NamesList":[{"Name:":"Alice"},{"Name":"Bob"},{"Name":"Clark"}]}
答案 0 :(得分:0)
以下是您的工作示例https://jsfiddle.net/yfr7v7so/
您必须在此行中为您的示例导入jQuery:
$("#listOutNames").html()
并尝试用JSON.Parse包装你的回声,如下所示:
var data = JSON.parse(<?php echo json_encode(array('NameList'=>$NamesList)) ?>);