统计
  • 建站日期:2021-03-10
  • 文章总数:386 篇
  • 评论总数:421 条
  • 分类总数:9 个
  • 最后更新:10月20日
文章 未分类

layui+php实现后台页面展示搜索分页排序删除

创新博客
首页 未分类 正文

第一步:先把引入的CSS js lib fonts images都放到public目录下

layui+php实现后台页面展示搜索分页排序删除
-创新博客-专注于资源分享的blog
-第1
张图片

上代码:

<html class="x-admin-sm">
<head>
    <meta charset="UTF-8">
    <title>后台管理</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
    <link rel="stylesheet" href="/static/css/font.css">
    <link rel="stylesheet" href="/static/css/xadmin.css">
    <script src="/static/lib/layui/layui.js" charset="utf-8"></script>
    <script type="text/javascript" src="/static/js/xadmin.js"></script>
    <!--[if lt IE 9]>
    <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js">
    </script>
    <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
    <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->

</head>
<body>

<div class="demoTable">
    搜索ID:
    <div class="layui-inline">
        <input class="layui-input" name="type" id="demoReload" autocomplete="off">
    </div>
    <button class="layui-btn" data-type="reload">搜索</button>
</div>
<div id="layerDemo" style="margin-bottom: 0;">
    <div class="layui-btn-container" style="margin-top: 30px;">
        <button data-method="setTop" class="layui-btn">添加</button>
    </div>
</div>
<script type="text/html" id="toolbarDemo">
    <div class="layui-btn-container">
        <button class="layui-btn layui-btn-sm" lay-event="getCheckData">获取选中行数据</button>
        <button class="layui-btn layui-btn-sm" lay-event="getCheckLength">获取选中数目</button>
        <button class="layui-btn layui-btn-sm" lay-event="isAll">验证是否全选</button>
    </div>
</script>
<script type="text/html" id="switchTpl">
    <!-- 这里的 checked 的状态只是演示 -->
    <input type="checkbox" name="is_show" value="{{d.is_show}}" lay-skin="switch" lay-text="有效|无效" lay-filter="sexDemo" {{ d.is_show == 1 ? 'checked' : '' }}>
</script>
<table class="layui-hide" id="LAY_table_user" lay-filter="LAY_table_user">

    <script type="text/html" id="img">
        <div><img src="{{d.img}}" width="30" height="30" alt="加载失败.."></div>
    </script>
    <script type="text/html" id="barDemo">
        <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看</a>
        <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
        <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
    </script>
</table>
<!-- 注意:如果你直接复制所有代码到本地,上述 JS 路径需要改成你本地的 -->
<script>
    layui.use('table', function(){
        var table = layui.table
        form = layui.form
        $ = layui.jquery
        layer = layui.layer;
        //方法级渲染
        table.render({
            elem: '#LAY_table_user'//表格ID
            ,toolbar: '#toolbarDemo'

            ,defaultToolbar: ['filter', 'exports', 'print', { //自定义头部工具栏右侧图标。如无需自定义,去除该参数即可
                title: '提示'
                ,layEvent: 'LAYTABLE_TIPS'
                ,icon: 'layui-icon-tips'
            }]
            ,url: '/admin/Discount/query'//后台数据路径
            ,cols: [[
                {type: 'checkbox', fixed: 'left'}
                ,{field:'id', width:80, title: 'ID', sort: true,fixed: true}
                ,{field:'name', width:80, title: '用户名'},
                {field:'type', width:80, title: '优惠券类型'},
                {field:'price', width:80, title: '优惠券面值', sort: true},
                {field:'indata', width:80, title: '优惠券有效期限'},
                {field:'img', width:80,title: '图片',templet:'#img'},
                {field:'sort', width:80, title: '排序', sort: true},
                {field:'is_show', title:'是否有效', width:85, templet: '#switchTpl', unresize: true},
                {fixed: 'right', width:200, align:'center',title: '操作' ,toolbar: '#barDemo'}
            ]]
            ,id: 'testReload'
            ,page: true//开启分页
            ,limit:10
            ,height: 500
        });
        table.on('toolbar(LAY_table_user)', function(obj){
            var checkStatus = table.checkStatus(obj.config.id);
            switch(obj.event){
                case 'getCheckData':
                    var data = checkStatus.data;
                    console.log(data)
                    // layer.alert(JSON.stringify(data));
                    $.ajax({
                        url:"{:url('admin/discount/delall')}",
                        data:{del:data},
                        success(res){
                            console.log(res)
                        }
                    })
                    break;
                case 'getCheckLength':
                    var data = checkStatus.data;
                    layer.msg('选中了:'+ data.length + ' 个');
                    break;
                case 'isAll':
                    layer.msg(checkStatus.isAll ? '全选': '未全选');
                    break;

                //自定义头工具栏右侧图标 - 提示
                case 'LAYTABLE_TIPS':
                    layer.alert('这是工具栏右侧自定义的一个图标按钮');
                    break;
            };
        });
        //监听性别操作
        form.on('switch(sexDemo)', function(obj){
            console.log(obj.value)
        });
        //进行查看编辑删除
        table.on('tool(LAY_table_user)', function(obj){
            var data = obj.data;
            console.log(data)
            if(obj.event === 'detail'){
                layer.msg('ID:'+ data.id + ' 的查看操作');
            } else if(obj.event === 'del'){
                layer.confirm('真的删除行么', function(index){
                    obj.del();
                    layer.close(index);
                });
            } else if(obj.event === 'edit'){
                layer.alert('编辑行:<br>'+ JSON.stringify(data))
            }
        });

        //搜索
        var $ = layui.$, active = {
            reload: function(){
                var demoReload = $('#demoReload');
                //执行重载
                table.reload('testReload', {
                    page: {
                        curr: 1 //重新从第 1 页开始
                    }
                    ,where: {
                        key: {
                            id: demoReload.val(),
                            type:demoReload.val(),
                        }
                    }
                });
            }
        };

        $('.demoTable .layui-btn').on('click', function(){
            var type = $(this).data('type');
            active[type] ? active[type].call(this) : '';
        });
        var active = {
            setTop: function () {
                var that = this;
                layer.open({
                    type: 2 //此处以iframe举例
                    ,
                    title: '优惠卷添加'
                    ,
                    area: ['600px', '600px']
                    ,
                    shade: 0
                    ,
                    maxmin: true
                    ,
                    offset: 'auto'
                    ,
                    content: "{:url('read')}"

                    ,
                    btn: ['继续弹出', '全部关闭'] //只是为了演示
                    ,
                    yes: function () {
                        $(that).click();
                    }
                    ,
                    btn2: function () {
                        layer.closeAll();
                    }
                    ,
                    zIndex: layer.zIndex //重点1
                    ,
                    success: function (layero, index) {
                        layer.setTop(layero); //重点2. 保持选中窗口置顶

                        //记录索引,以便按 esc 键关闭。事件见代码最末尾处。
                        layer.escIndex = layer.escIndex || [];
                        layer.escIndex.unshift(index);
                        //选中当前层时,将当前层索引放置在首位
                        layero.on('mousedown', function () {
                            var _index = layer.escIndex.indexOf(index);
                            if (_index !== -1) {
                                layer.escIndex.splice(_index, 1); //删除原有索引
                            }
                            layer.escIndex.unshift(index); //将索引插入到数组首位
                        });
                    }
                })
            }
        };
        $('#layerDemo .layui-btn').on('click', function(){
            var othis = $(this), method = othis.data('method');
            active[method] ? active[method].call(this, othis) : '';
        });
    });

</script>

</body>
</html>

controller里面的方法获取

url: '/admin/index/orders' //后台数据路径

//页面数据
public function orders(){
        $par = request()->param();
        $page = request()->param('page');
        $limit = request()->param('limit');
        if (isset($par['key'])){
            $data = lists::where('id','like',$par['key']['id'])->whereOr('name','like',$par['key']['name'])->paginate(3)->toArray();
            return json(['data'=>$data['data'],'code'=>0,'msg'=>'']);
        }else{
            $data = lists::paginate($limit)->toArray();
            $count = lists::select()->count();
            return json(['data'=>$data['data'],'code'=>0,'msg'=>'','count'=>$count]);
        }
    }
//页面
public function order_list(){
        return View::fetch('index/order_list');
    }
//全选删除
public function delall()
    {
        $data = input('get.del');
        $id = array_column($data,'id');
        $is_show = array_column($data,'is_show');
        foreach ($is_show as $k=>$v){
            $is = $v;
            print_r($is);
            if ($is == 0){
                $res = Discount::where('id', 'in', $id)->delete();
                return json(['data' => $data, 'msg' => '删除成功', 'code' => 0]);
            }
        }
        //return OlyService::delall($is_show,$id);
    }

效果图:


layui+php实现后台页面展示搜索分页排序删除
-创新博客-专注于资源分享的blog
-第2
张图片

版权说明
文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。
版权声明:未标注转载均为本站原创,转载时请以链接形式注明文章出处。如有侵权、不妥之处,请联系站长删除。敬请谅解!

这篇文章最后更新于2023-5-5,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
iOS技巧之获取本机通讯录中的内容,解析通讯录源代码
« 上一篇
闪聊获取通讯录源码
下一篇 »
为了防止灌水评论,登录后即可评论!

HI ! 请登录
注册会员,享受下载全站资源特权。

最新文章

热门文章