2020-06-26 TP5.1+layui(x-admin)批

2020-06-26  本文已影响0人  挤时间学习的阿龙

网上查了好几个,终于试出1个可以用的,基本上都是后台可以接收到多个id,但是数据库删除这步就无法删除。

1、效果

(目前是直接删除,下一步准备更新为软删除->删除到回收站,然后回收站再去清空,这样比较安全)


左侧勾选要删除的项目.png
删除提示.png

2、模板

html部分

 <div class="layui-card-header">
                            <button class="layui-btn layui-btn-danger" onclick="datadel()">
                                <i class="layui-icon"></i>批量删除</button>
                            <button class="layui-btn" onclick="x_admin_show('添加产品','{:url(\'Customer/add\')}')">
                                <i class="layui-icon"></i>添加</button></div>
                        <div class="layui-card-body ">
                            <table class="layui-table layui-form">
                                <thead>
                                    <tr>
                                        <th width="2%">
                                            <input type="checkbox" class="all" lay-skin="primary">
                                        </th>
                                        <th width="4%">ID</th>
                                        <th width="8%">所属项目</th>
                                        <th width="10%">姓名/中介</th>
                                        <th width="8%">电话</th>
                                        <th width="5%">状态</th>
                                        <th>跟进记录</th>
                                        <th width="5%">添加人</th>
                                        <th width="8%">创建日期</th>
                                        <th width="6%">最后跟进</th>
                                        <th width="7%">操作</th>
                                </thead>
                                <tbody>
                                {volist name="datas" id="vo"}
                                    <tr>
                                        <td>
                                            <input name="ids" class="ids" type="checkbox" value="{$vo.id}" lay-skin="primary" ></td>
                                        <td>{$vo.id}</td>
                                        <td>{:GetSortTitle($vo.sort)}</td>
                                        <td>{$vo.name}</td>
                                        <td>{$vo.phone}</td>
                                        <td>{if $vo.status==1}咨询{/if}
                                            {if $vo.status==2}约看{/if}    
                                            {if $vo.status==3}已带看{/if} 
                                            {if $vo.status==4}跟进中{/if} 
                                            {if $vo.status==5}复看{/if} 
                                            {if $vo.status==6}无效咨询{/if} 
                                            {if $vo.status==7}无效客户{/if} 
                                            {if $vo.status==8}签别处{/if} 
                                            {if $vo.status==9}已签约{/if} 
                                            {if $vo.status==10}战败{/if} 
                                        </td>
                                        <td>{$vo.content}<br>
                                        </td>
                                        <td>{$vo.createuser}</td>
                                        <td>{$vo.createtime|date="Y-m-d H:i"}</td>
                                        <td>{$vo.updatetime|date="Y-m-d"}</td>
                                        <td class="td-manage">
                                            <a title="添加跟进"  onclick="x_admin_show('添加跟进','{:url(\'customer/followUp\')}?id={$vo.id}')" href="javascript:;" type="button" class="layui-btn layui-btn-sm layui-btn-danger">跟进
                                            
                                            </a>
                                            <a title="编辑"  onclick="x_admin_show('编辑','{:url(\'customer/edit\')}?id={$vo.id}')" href="javascript:;">
                                                <i class="layui-icon">&#xe63c;</i>
                                            </a>
                                            <a title="删除" onclick="member_del(this,'{$vo.id}')" href="javascript:;">
                                                <i class="layui-icon">&#xe640;</i>
                                            </a>
                                        </td>
                                    </tr>
                                {/volist}
                                </tbody>
                            </table>
                        </div>

js部分

    <script>layui.use(['laydate', 'form','layer'],
        function() {
            $ = layui.jquery;//jquery
            var laydate = layui.laydate;
            layer = layui.layer;//弹出层

            //执行一个laydate实例
            laydate.render({
                elem: '#start' //指定元素
            });

            //执行一个laydate实例
            laydate.render({
                elem: '#end' //指定元素
            });
        });

        /*删除*/
        function member_del(obj,id){
            layer.confirm('确认要删除吗?',function(index){
                //发异步删除数据
                $.get('{:url(\'del\')}','id='+id,function (data) {
                    if (data.res ==1){
                        $(obj).parents("tr").remove();
                        layer.msg('已删除!',{icon:1,time:1000});
                    }
                })

            });
        }

        function datadel(){
                $ids = $("input[name='ids']:checked");
                var checkID=[];
                $("input[name='ids']:checked").each(function(i){
                      checkID[i] = $(this).val();
                });
                //判断数组是否为空。空的话禁止点击
                if(checkID.length == 0){
                    return;
                }
                // console.log(checkID);
            layer.confirm('确认要删除吗?',function(index){
            // $ids = $(".ids");
                $.ajax({
                    type: 'POST',
                    url:"{:url('delAll')}",
                    data:{checkID:checkID},
                    dataType: 'json',
                    success: function(data){
                        // alert(data);
                        // $(obj).parents("tr").remove();
                        $ids.each(function(i){
                              $(this).parents("tr").remove();
                              // console.log($(this).parents("tr"));
                        });
                        layer.msg('数据已删除!',{icon:1,time:1000});
                    },
                    error:function(data) {
                        // console.log(data.msg);
                    },
                });        
            });
        }
        </script>

3、后台方法

(1)引入db类
use think\Db;
(2)方法
 public function delAll()
        {
          $data = $_POST['checkID'];
          $DB = new Db;
          $res=$DB::table("customer")->delete($data);
          if($res){
            return['res'=>1,'msg'=>'删除客户成功!'];
          }
        }

4、模板中重要的几点

(1)单选框属性值要插入id值,name class属性均要填写,后面jq部分要使用
<input name="ids" class="ids" type="checkbox" value="{$vo.id}" lay-skin="primary" ></td>
(2)按钮点击事件
<button class="layui-btn layui-btn-danger" onclick="datadel()"><i class="layui-icon"></i>批量删除</button>
(3)jquery如何把选中的id提交到后台

$("input[name='ids']:checked").each(function(i){
                      checkID[i] = $(this).val();
                });

(4)删除后不刷新页面显示删除效果,操作DOM元素

$ids.each(function(i){
                      $(this).parents("tr").remove();
                      // console.log($(this).parents("tr"));
                });

(5)tp5.1批量删除的语法,data是一个数组。
$res=$DB::table("goods")->delete($data);

5、Layui操作成功后返回父级并且刷新

window.parent.location.reload();

上一篇下一篇

猜你喜欢

热点阅读