後臺使用者刪除和批量刪除
阿新 • • 發佈:2020-12-04
1.新增刪除使用者連結
//點選刪除按鈕,執行onclick事件的member_del()方法,傳入當前使用者的id
<a title="刪除" onclick="member_del(this,{{ $v->user_id }})" href="javascript:;">
<i class="layui-icon"></i>
</a>
2.編寫刪除操作的onclick事件的member_del()方法
//使用者刪除 function member_del(obj, id) { layer.confirm('確認要刪除嗎?', function(index) { //$.post(請求的網址,傳送方式,攜帶的token,要返回的資料) $.post('/admin/user/'+id,{"_method":"delete","_token":"{{csrf_token()}}"},function(data){ console.log($data); }); }); }
3.執行刪除使用者控制器方法,接收刪除路由傳遞過來的使用者id,執行刪除操作,並返回給客戶端
//執行一個使用者刪除操作 public function destroy($id) { //根據刪除路由傳過來的使用者id,查出對應的資料 $user = User::find($id); //執行刪除操作 $res = $user->delete(); //根據刪除操作結果,給客戶端返回json格式的資料 if ($res) { $data = [ 'status'=>0, 'message'=>'刪除成功' ]; }else{ $data = [ 'status'=>1, 'message'=>'刪除失敗' ]; } return $data; }
4.前臺ajax接收服務端返回的資料
function(data){ //console.log($data); if (data.status ==0) { //移除當前元素 $(obj).parents("tr").remove(); //layer彈層給提示資訊和笑臉圖示,1000毫秒後關閉 layer.msg(data.message, {icon: 6,time: 1000}); }else{ //layer彈層給提示資訊和哭臉圖示,1000毫秒後關閉 layer.msg(data.message, {icon: 5,time: 1000}); }
5.批量刪除使用者
- 將每個使用者資料前面的複選框新增一個data-id屬性
<td>
<div class="layui-unselect layui-form-checkbox" lay-skin="primary" data-id='{{ $v->user_id }}'><i class="layui-icon"></i></div>
</td>
- 給批量刪除按鈕新增點選事件
<button class="layui-btn layui-btn-danger" onclick="delAll()"><i class="layui-icon"></i>批量刪除</button>
- 編寫點選事件
function delAll(argument) {
//定義空陣列用來放置要批量刪除的使用者的id
var ids = [];
//選中所有屬性為layui-form-checked的複選框,遍歷並獲取它們的data-id
$(".layui-form-checked").not('.header').each(function(i,v){
//將獲取的data-id儲存起來
var u = $(v).attr('data-id');
//將獲取的data-id的值push到所有使用者ids陣列中
ids.push(u);
});
layer.confirm('確認要刪除嗎?', function(index) {
//以get方式傳送到admin/user/del,攜帶所有要刪除的使用者id,返回data資料
$.get('/admin/user/del',{'ids':ids},function(data) {
});
});
}
- 建立批量刪除使用者路由
//批量刪除使用者路由
Route::get('user/del', 'UserController@delAll');
- 建立批量刪除使用者控制器方法
//批量刪除所有選中使用者
public function delAll(Request $request)
{
//獲取到所有選中使用者的ids
$input = $request->input('ids');
//執行刪除操作
$res = User::destroy($input);
//根據刪除操作結果,給客戶端返回json格式的資料
if ($res) {
$data = [
'status'=>0,
'message'=>'刪除成功'
];
}else{
$data = [
'status'=>1,
'message'=>'刪除失敗'
];
}
return $data;
}
- 批量刪除使用者控制器方法給客戶端返回資料
function(data) {
if (data.status ==0) {
//移除當前元素
$(".layui-form-checked").not('.header').parents('tr').remove();
layer.msg(data.message, {icon: 6,time: 1000});
}else{
layer.msg(data.message, {icon: 5,time: 1000});
}