thinkphp批量删除的实现

今天自己在写后台的时候需要把以前上传的测试文章全部删除掉,但是利用 【操作】里面的一个个删除比较慢,因此想出一个批量删除的解决方案。

首先在前端页面里面建立一个表单,这个表单是把你选中的单选按钮提交到控制器的操作函数

 <form action="__URL__/deleteSelected" method="post"></form>

批量删除前端用了一个js 的简单验证

  <a href="#" onclick="delAll()" class="delete"><span class="glyphicon glyphicon-trash"> </span> 批量删除</a>
 <td class="tc"><input name="id[]" value="<{$voList.txt_id}>" type="checkbox"></td>
 <script>  
  function delAll(){
      var chk_value =[]; 
      $('input[name="id[]"]:checked').each(function(){ 
        chk_value.push($(this).val()); 
      }); 
      console.log(chk_value);
      var submit = confirm(chk_value.length==0 ?'你还没有选择任何内容!':'您是否需要将id '+chk_value+'删除'); 
      if (submit) {
        window.location.href = "__URL__/deleteSelected/id/"+chk_value;
        return false;
      } else{
        return false;
      };
    }
 </script>

主要功能实现是通过后台的操作来完成的,代码如下

    //批量删除
    public function deleteSelected(){
        $getid = $_REQUEST['id']; //获取选择的复选框的值
        dump($getid);
        if (!$getid)
            $this->error('未选择记录'); //没选择就提示信息
        $getids = implode(',', $getid); //选择一个以上,就用,把值连接起来(1,2,3)这样
        $id = is_array($getid) ? $getids : $getid; //如果是数组,就把用,连接起来的值覆给$id,否则就覆获取到的没有,号连接起来的值
     //最后进行数据操作,
        $Result = D("Txt")->delete($id);
        $say = '删除成功';
        if ($Result === false) {
            $this->error('操作失败');
        } else {
            $this->success($say);
        }
    }
原文地址:https://www.cnblogs.com/xs-yqz/p/5786947.html