渲染控制器,不能使用Ajax;

时间:2017-05-10 14:15:51

标签: ajax symfony


我用Ajax Search从主控制器中删除了所有逻辑,将它放在一个自定义控制器中并在我的模板中渲染它:

{{render(controller('MainBundle:SearchCertificate:searchCertificate'))}}

但是Ajax不起作用。

我的symfony工具栏中有一个Ajax请求(提交表单时),如下所示:

  

POST xhr 200 /app_dev.php/main/order/create 820ms 14f184

我设置断点(在PHP代码中),但PHPStorm跳过它们(没有结果)。

1 个答案:

答案 0 :(得分:0)

我找到了答案,我忘了为我的新控制器创建路由。 并在Ajax(url: "{{ path('app.admin.search.certificate')}}"

中更改URL

路由器:

app.admin.search.certificate:
   path: /admin/serach-certificate
   defaults: { _controller: MainBundle:SearchCertificate:searchCertificate } 

AJAX:

$.ajax({
    type: "POST",
    url: "{{ path('app.admin.search.certificate')}}",
    dataType: 'json',
    data: $('#form_search_certificate').serialize(),
    success: function (data) {
        $("#search_result").empty();
        var dataParse = JSON.parse(data.result_search);
        if (dataParse.length !== 0) {
            for (var i = 0; i < dataParse.length; i++) {
                $.tmpl(template, {
                    "id": dataParse[i].id,
                    "dpId": dataParse[i].dp_id,
                    "name": dataParse[i].name,
                    "price": dataParse[i].price,
                    "discount": dataParse[i].discount.value,
                    "description": dataParse[i].description,
                    "image": dataParse[i].image,
                    "companyName": dataParse[i].company.name,
                    "categoryName": dataParse[i].category.name,
                    "cart_id": data.cart_id
                }).appendTo("#search_result");
            }
        } else {
            $.tmpl(empty, {}).appendTo("#search_result");
        }
    }});