使用PHP ajax的把手外部标记

时间:2015-05-07 16:47:14

标签: jquery handlebars.js

我希望将所有模板标记文件保存在外部html文件中,同时使用jQuery ajax使用PHP与服务器通信。 PHP将只返回json对象中的可变数据。

问:我如何组织这个,以便使用我的html模板下面的代码在外部文件中?

jquery的:

   $.ajax({ type: "POST",
            async: false,
            url: "ajaxHandler.php",// normally the template, but i need php for dB connect
            dataType: "json",
            success: function(data){
                var aaa = data.aaa,
                        bbb = data.bbb,
                        ccc = data.ccc;
                console.log(aaa+' '+bbb+' '+ccc);       
            }
        });

PHP:

  

$ aaa = 1;
      $ bbb =' bbb&#39 ;;
      $ ccc =" $ aaa $ bbb&#34 ;;
      echo json_encode(array(&#34; aaa&#34; =&gt; $ aaa,&#34; bbb&#34; =&gt; $ bbb,&#34; ccc&#34; =&gt; $ ccc)); < / p>

我的index.html包含:

  <table class="entries">
            <script id="template" type="text/x-handlebars-template">
                            <tr>
                                    <td>{{aaa}}</td>
                                    <td>{{bbb}}</td>
                                    <td>{{ccc}}</td>
                            </tr>
            </script>
    </table>

但我想将其保存在外部文件中

1 个答案:

答案 0 :(得分:1)

您需要precompile your templatesload and compile the .hbs files with Ajax when requested。之后,您可以从Handlebars.templates获取模板,将其填入您的数据并将其附加到您的条目

yourtemplate.hbs

<tr>
  <td>{{aaa}}</td>
  <td>{{bbb}}</td>
  <td>{{ccc}}</td>
</tr>

JavaScript

   $.ajax({ type: "POST",
            async: true,
            url: "ajaxHandler.php",
            dataType: "json",
            success: function(data){
                var template = Handlebars.template["yourtemplate.hbs"],
                    html = template(data);
                $(".entries").append(html);

            }
   });