Php 使用Ajax mysql请求输出到视图的Mustache模板
我正在尝试将sql查询应用于一个小胡子模板。我正在查询laravel数据库中的用户表。到目前为止,我有它返回的名字:'约翰'姓'史密斯' 我的api.php页面正在查询数据库并以json的形式返回数据。没问题Php 使用Ajax mysql请求输出到视图的Mustache模板,php,mysql,ajax,mustache,Php,Mysql,Ajax,Mustache,我正在尝试将sql查询应用于一个小胡子模板。我正在查询laravel数据库中的用户表。到目前为止,我有它返回的名字:'约翰'姓'史密斯' 我的api.php页面正在查询数据库并以json的形式返回数据。没问题 <?php $host = "localhost"; $user = "root"; $pass = "root"; $databaseName = "laravel"; $tableName = "users"; include 'DB.php';
<?php
$host = "localhost";
$user = "root";
$pass = "root";
$databaseName = "laravel";
$tableName = "users";
include 'DB.php';
$con = mysql_connect($host,$user,$pass);
$dbs = mysql_select_db($databaseName, $con);
$result = mysql_query("SELECT * FROM $tableName");
//fetch result
$array = mysql_fetch_row($result);
echo json_encode($array);
?>
然后我有一个client.html页面,在其中我试图创建模板。是不是因为我返回的json没有任何结构,只是纯数据?是否有一种方法可以指定我希望通过查询返回的数据。我目前正在查询所有数据,并尝试将其模板化
<html>
<head>
<script language="javascript" type="text/javascript" src="jquery.js"></script>
</head>
<body>
<h2> Client example </h2>
<h3>Output: </h3>
<script id="projectstpl" type="text/template">
<div id="output">
{{#projects}}
<div class="project">
<h3>{{name}}</h3>
<h4>{{lastname}}</h4>
</div>
{{/projects}}
</div>
</script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery.cycle/2.9999.8/jquery.cycle.all.min.js" type="text/javascript"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/mustache.js/0.7.0/mustache.min.js" type="text/javascript"></script>
<script id="source" type="text/javascript">
$(function() {
$.ajax({
url: 'api.php', //the script to call to get data
data: "", //you can insert url argumnets here to pass to api.php
//for example "id=5&parent=6"
dataType: 'json', //data format
success: function(data) { //on recieve of reply
var template = $('#projectstpl').html();
var html = Mustache.to_html(template, data);
$('#output').html(html);
}
});
});
</script>
</body>
</html>
我不是留胡子的专家。但是,根据它的演示 看起来您的JSON不应该只是[1,John,Smith],而是类似于[projects:[{name:John,lastname:Smith}]]
我相信您可以从HTML中删除{{projects}},而将JSON简单地命名为[name:John,lastname:Smith]。JSON看起来如何?@Shikiryu[1,John,Smith]