1. 程式人生 > 實用技巧 >後臺使用者刪除和批量刪除

後臺使用者刪除和批量刪除

1.新增刪除使用者連結

            //點選刪除按鈕,執行onclick事件的member_del()方法,傳入當前使用者的id
            <a title="刪除" onclick="member_del(this,{{ $v->user_id }})" href="javascript:;">
              <i class="layui-icon">&#xe640;</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">&#xe605;</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});
          }