2015-05-05 49 views
0

我有一個問題,當我想在模板Twig中使用Ajax和Symfony刪除註冊表時。Symfony刪除ajax

<tbody> 
    {% for entity in entities %} 
     <tr> 
      <td> 
       <a class="delete btn btn-danger btn-xs glyphicon glyphicon-trash" data-playgroup-id="{{ entity.id }}" ></a> 
      </td> 
     </tr> 
    {% endfor %} 
</tbody> 

阿賈克斯:

$(document).ready(function() { 

    $(".delete").click(function(){ 
     var pid = $(this).attr("data-playgroup-id"); 

     bootbox.confirm("Are you sure?", function(result) { 
      if(result){ 
       $.ajax({ 
        url: '{{path('playergroup_delete', { 'id': pid}) }}', 
        type: 'delete', 
        success: function(result) { 
         console.log('Delete'); 
        }, 
        error: function(e){ 
         console.log(e.responseText); 
        } 
       }); 
      } 
     }); 
    }); 
}); 

我收到一個錯誤:

變量 「PID」 並不存在。

謝謝!

+0

你的url屬性看起來很時髦。檢查引號和輸出結果應該是什麼......''var url =「{{path('playergroup_delete',{'id':」+ pid +「})}}」' –

+0

@PhilCooper它沒有,它是小枝語法 – Jean

+0

@jean我站在更正! –

回答

1

由於MouradK說,你在一個小枝函數(服務器端)傳遞一個變量,你得到這個變量使用javascript(客戶端)。 解決這個問題是這樣的:

$(document).ready(function() { 

    $(".delete").click(function(){ 
     var pid = $(this).attr("data-playgroup-id"); 

     bootbox.confirm("Are you sure?", function(result) { 
      url = '{{path('playergroup_delete', { 'id': 0}) }}'; 
      url = $url.replace("0",pid); 
      if(result){ 
       $.ajax({ 
        url: url, 
        type: 'delete', 
        success: function(result) { 
         console.log('Delete'); 
        }, 
        error: function(e){ 
         console.log(e.responseText); 
        } 
       }); 
      } 
     }); 
    }); 
}); 
+0

關於這樣的事情 – MouradK

+0

是的,發現! 如何判斷'type'屬性是否可以將Ajax刪除並獲取。 作爲routing.yml。 pg_delete: 路徑:/(編號)/刪除 默認值:{_controller: 「MyAppBundle」} 要求:{_method:得到|刪除} 例如: 類型: '得到|刪除'; – urreta17

+0

爲什麼刪除不重定向到指定的url? 在控制器功能刪除記錄,返回: 'playergroup_delete: 路徑:/(編號)/刪除 默認值:{_controller: 「MyAppBundle:PlayerGroup:刪除」} 要求:{_method:得到|刪除} ' 控制器: '返回$這 - >重定向($這 - > generateUrl( 'playergroup'));' – urreta17

0

這意味着你沒有將pid變量傳遞給你的Twig模板。

它傳遞槽控制器,你會被罰款

+0

$ pid = $ em-> getRespository('MyAppBundle:PlayerGroup') - > find(); 但在我的indexAction我不是通過ID搜索,因爲我只找到所有寄存器。 – urreta17

0

的錯誤是:

您正試圖在樹枝模板來設置在客戶端(JavaScript)的一個正在添加變量(這是一個服務器側)。

+0

我可以在控制器中定義變量並將它留空嗎? – urreta17

+0

它取決於您的路由配置,如果它有一個默認值。 – MouradK