2016-11-10 63 views
0

我得到的id目前我警告我要發佈這些ID對destroyAll方法在我UserController的 這裏是我的方法,通過它我得到的ID在戒備刪除數據laravel 5.3

function deleteAll() { 
    var checkedValues = $('input:checkbox:checked').map(function() { 
     return this.value; 
    }).get(); 
    alert(checkedValues); 
} 

我要張貼通過Ajax這些值,並刪除有 路線

Route::post('/user-management/user/destroyAll', '[email protected]'); 

在毀滅亞勒方法我也想爆炸和減去頭複選框值

回答

2

你需要使用AJAX:

$.ajax({ 
     type : "POST", 
     url  : "{{ url('/user-management/user/destroyAll') }}", 
     data : {ids: checkedValues, _token: "{{ csrf_token() }}"}, 
     success : function (response) { 
      console.log('Success', response); 
     }, 
     error : function (response) { 
      console.log('Error', response); 
     }, 
     dataType: "JSON" 
    }); 

再搭上IDS在控制器:

public function destroyAll(Request $request) 
{ 
    // get ids 
    $ids = $request->input('ids'); 

    // remove first 
    array_shift($ids); 

    // delete users with id 
    return User::whereIn('id', $ids)->delete(); 
} 
+0

什麼是'array_shift($ ids);'用於? – madalinivascu

+0

它將刪除第一個元素的數組,因爲OP問「和減頭的複選框值」:) –

+0

@GiedriusKiršys請你可以添加整個方法deleteAll清楚,並更新您的答案請 –

0

加入你的價值觀將字符串將它們添加到一個隱藏的輸入和控制器你做一個,其中函數來獲取所有用戶,並刪除它們:

HTML:

<input type="hidden"> 

JS:

$('input[type="hidden"]').val(checkedValues.join(',')); 

PHP:

public function destroyAll(Request $request) 
     { 
      $checkedValues = explode(','$request->input("checkedValues")); 
      $user = User::whereIn('id',$checkedValues); 
      $user->delete(); 
      //redirect back to the page after delete 
     } 

優化您的選擇不選擇第一個:

checkedValues = $('input:checkbox:checked:not(:first)') 
+0

如何我會來毀滅所有的方法嗎? @madalin ivascu –

+0

你使用一個表單,將其隱藏的輸入提交給它 – madalinivascu

+0

這個js將會在'alert(checkedValues)之後;'? @madalin ivascu –