2015-10-19 6 views
0

Этот вопрос задавался раньше, но ответа не получил. У меня есть php-файл, который отправляет json-объект в файл javascript, который должен отображать его с помощью шаблона и отображать его на div. Проблема в том, что функция Mustache.to_html() возвращает пустую. может кто-нибудь сказать мне, что я делаю неправильно. вот мой код.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, а не шаблоном. а второй console.log после применения функции Mustache.to_html возвращает пустую строку. Что я делаю не так?

Выход console.log для шаблона

{{#arraay}} 
     <div> 
      <h2> {{Title}}</h2> 
      <p>{{Course}}</p> 
      <p>{{Category}}</p> 
     </div> 
    {{/arraay}} 

и оповещения для данных { "arraay": [{ "Название": "Алгоритмы", "Курс":» CSI241" , "Категория": "наука"}, { "Название": "Fluid динамика", "курс": "PHY345", "Категория": "наука"}]}

+0

Можем ли мы увидеть, что 'console.log' напечатал для' data' и 'template'? – Amadan

+0

Просто отредактируйте их в свой вопрос, не пытайтесь представить их в комментариях ... – Amadan

ответ

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

+0

делает ли усы тегом до или после функции сверху? – Sparksido

+0

Это просто демонстрация того факта, что, если вы указали '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' одна из ваших предпосылок, вероятно, будет неправильной. (В этом конкретном случае код будет выполняться, когда HTML уже включен, но это не имеет значения.) – Amadan

Смежные вопросы