2017-05-10 93 views
0


我砍所有的逻辑从主控制器与阿贾克斯的搜索,把它放在一个自定义的控制,呈现在我的模板:渲染控制器,不工作Ajax;

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

但阿贾克斯不起作用。

我在我的symfony工具栏Ajax请求(提交表单时)如下:

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

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

+0

所以当你点击探查Ajax请求,这是什么告诉你吗? – DevDonkey

回答

0

我找到了答案,我忘了为我的新控制器创建路由。 而改变URL在阿贾克斯(url: "{{ path('app.admin.search.certificate')}}"

路由器:

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"); 
     } 
    }});