美文网首页
2020-06-26 TP5.1+layui(x-admin)批

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

作者: 挤时间学习的阿龙 | 来源:发表于2020-06-26 22:10 被阅读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();

    相关文章

      网友评论

          本文标题:2020-06-26 TP5.1+layui(x-admin)批

          本文链接:https://www.haomeiwen.com/subject/dsqpfktx.html