Php 使用Ajax mysql请求输出到视图的Mustache模板

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';

我正在尝试将sql查询应用于一个小胡子模板。我正在查询laravel数据库中的用户表。到目前为止,我有它返回的名字:'约翰'姓'史密斯'

我的api.php页面正在查询数据库并以json的形式返回数据。没问题

<?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]