将ajax / jquery JSON数组加载到Twig Template中

时间:2014-11-26 14:28:23

标签: php jquery ajax symfony twig

我目前正在使用Symfony2框架构建一个程序,并利用该平台附带的许多不错的新功能,如Doctrine,Twig等。

我的一个页面要求我在页面加载完成后通过AJAX加载大量数据。这很容易通过JQuery / Ajax实现,但我想这样的事情会有一种方法可以通过JSON将ajax直接注入到Twig模板中,并将其填充到for循环中。

<table>
<tr><td>header</td></tr>
{% for row in rows %}
    <tr><td>{{row.data}}</td></tr>
{%endfor%}
</table>

像这个粗略的例子。

我确实快速浏览了文档,但是搜索结果已经停止,我无法直接找到任何内容。如果我正在寻找的话,文档链接就足够了。

2 个答案:

答案 0 :(得分:1)

我认为最干净的方法是在控制器中生成Json。 周围的东西:

/**
 * @route("/json", name="json_generator")
*/
public function jsonAction() {
   // do your for loop and build up a $jsonArray

   return new Response( json_encode($jsonArray) );
}

然后在浏览器中测试它的响应,并在twig模板中使用Javascript加载它。 现在没有具体的代码,但从头到尾:

$(document).ready(function() {
  $.ajax({
     ajax: true,
     url: "{{ path('/json') }}"
  });
};

这样你就明白了。希望它可以作为一个基本的例子 -

答案 1 :(得分:0)

有两种方式: 1.在控制器渲染html中发出AJAX请求并将其返回给脚本。然后在需要时添加。 2.发出AJAX请求,返回JSON并在脚本中构建html,然后将准备好的html添加到您的特定位置。

我认为更好的方法是在您的操作中渲染html并将其返回到您的AJAX脚本