2016-11-10 58 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 –