Mar*_*ius 2 ajax jquery symfony twig
在 Symfony 3 中我有一个排序,我使用 ajax 从后端获取对象。
\n\n这是在控制器中:
\n\nif($request->getMethod() === \'POST\' && isset($_POST[\'sort\'])) {\n if($_POST[\'sort\'] === \'title_up\') {\n $products = $em->createQuery("SELECT a FROM AppBundle:Product a ORDER BY a.title ASC")->getArrayResult();\n... etc.\n }\n}\n\nreturn new JsonResponse($products);\nRun Code Online (Sandbox Code Playgroud)\n\n我在前端获取对象:
\n\n$(\'#form_select\').on(\'change\', function()\xe2\x80\x8a {\n var path = "{{ \'/\' }}";\n var optionSelected = $("option:selected", this);\n console.log(path);\n var valueSelected = this.value;\n if($.trim(valueSelected) != \'\')\n {\n /*$(\'#items\').text(data);*/\n $.post(path, {sort : valueSelected}, function(data) {\n console.log(\'dump\', data[0].title);\n for(var i = 0; i < data.length; i++) {\n $(\'#items\').append(data[i].title)\n }\n })\n }\n});\nRun Code Online (Sandbox Code Playgroud)\n\n问题是:有没有比使用循环和添加 data[i].description、data[i].title ...等更好的方法来渲染对象?
\n\n我正在使用 twig,如果我可以将变量数据传递给 twig 来创建我需要的视图,那就太好了。(就像我渲染从控制器传递到树枝的任何其他变量一样)
\nTwig 是 PHP 的模板引擎,因此它是服务器端的。这意味着您无法将某些内容从前端(JS)直接传递到 Twig。
但是您仍然可以在控制器中渲染树枝模板并在 ajax 调用中返回并粘贴到您的前端中您想要的位置
return new JsonResponse([
'html' => $this->renderView('your_twig_file.html.twig', ['products' => $products])
]
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2891 次 |
| 最近记录: |