2014-10-28 69 views
1

我得到了一個表單,我可以通過選中一個複選框來銷燬多個項目,並且可以通過單擊表格行中的刪除按鈕來刪除單個項目。大量刪除和laravel在一個頁面中的單一刪除

因爲單個刪除被一個包含DELETE方法的表單包圍。我不知道如何處理大量刪除。因爲我想我也需要一個表格。

但是,因爲單個刪除有一個窗體,我不能用另一個窗體包圍。

此外,我必須有空間使用形式的過濾器,這將發送POST方法。

這是在laravel中的最佳解決方案是什麼?我不能使用動作,因爲我需要DELETE方法..

+0

JavaScript是一種選擇? – lukasgeiter 2014-10-28 22:41:18

+0

但是我只是把它作爲普通頁面發送,刷新。我想你是指一個AJAX調用?不知道我怎麼會用Javsacript這麼做。如果有人能把我帶到正確的方向,會很高興。它也必須有一個DELETE方法。 – guidsen 2014-10-28 22:46:01

回答

1

HTML表單適用於簡單的交互,如編輯或創建新資源。然而,當與項目列表進行交互並進行多種可能的操作時,它會變得複雜(正如您注意到的那樣)。這是我們新的最好的朋友AJAX進來了。我會用jQuery,儘管你也可以使用普通的javascript(這只是更多的工作)
我們將使用$.ajax方法來撥打服務器

$.ajax({ 
    url: 'your/target/url', 
    type: 'delete', 
    data: {ids: [1,2,3]}, // just an example. here you would insert the ids of all selected items 
}).done(function(data){ 
    // gets called if everything goes well 
}).fail(function(jqXHR, textStatus){ 
    // ooops the request returned an HTTP error code, something bad must have happened 
}); 

在你的控制器,你應該然後能夠通過如下創建一個Ajax請求訪問與Input::get('ids')

+0

葉我幾秒前創造了這樣的東西,這是真的顯示..但我想這是在這種情況下最好的選擇。我重新加載成功的頁面。 – guidsen 2014-10-28 23:11:46

+0

@guidsen「這是真正的秀」你的意思是慢嗎? – lukasgeiter 2014-10-28 23:13:01

+0

是的,抱歉的錯字。 – guidsen 2014-10-28 23:14:51

0

我已經解決這種情況的變量:

$.ajax({ 
    url: $(this).data('url'), 
    type: 'POST', 
    data: {_method: 'delete', _token: token}, 
    success: function() { 
    // 
    } 
})