layui 表格简单操作

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <title>layui在线调试</title>
    <link rel="stylesheet" href="/static/css/layui.css" media="all">
    <style>
        body{margin: 10px;}
        .demo-carousel{height: 200px; line-height: 200px; text-align: center;}
    </style>
</head>
<body>

// --------------------------搜索start------------------------------------

<form class="layui-form" >
    <div class="demoTable">
        搜索ID:
        <div class="layui-inline">
            <input class="layui-input" name="id" id="demoReload" autocomplete="off">
        </div>
        <div class="layui-input-inline">
            <input type="tel" name="name" autocomplete="off" placeholder="姓名/手机/身份证" class="layui-input" id="name">
        </div>
        <button class="layui-btn" data-type="reload" type="button">搜索</button>
        <button type="reset" class="layui-btn layui-btn-primary">重置</button>
    </div>
</form>
// -------------------------------end-----------------------------------

<table class="layui-hide" id="demo" lay-filter="test"></table>

// ---------------------------------------------------------------------
<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>

<script src="/static/js/layui.js"></script>

<script>

    layui.use(['laydate', 'laypage', 'layer', 'table'], function(){
        table = layui.table         // 表格
        ,element = layui.element,   // 元素操作
        $ = layui.$,                // 这里要先声明变量,不然下面会报错

        //执行一个 table 实例
        table.render({
            elem: '#demo'
            ,url: '/Get_params/returnjson' //数据接口
            ,title: '用户表'
            ,page: true         //开启分页
            ,toolbar: 'default' //开启工具栏,此处显示默认图标,可以自定义模板,详见文档
            ,cols: [[ //表头
                {type: 'checkbox', fixed: 'left'}
                ,{field: 'id', title: 'ID',sort: true}
                ,{field: 'name', title: '用户名',edit:'test'}
                ,{field: 'email', title: '邮箱',edit:'test'}
                ,{field: 'right', width: 165, align:'center', toolbar: '#barDemo'}
            ]]
            ,id: 'testReload'
        });

        //监听行工具事件

        table.on('tool(test)', function(obj){ //注:tool 是工具条事件名,test 是 table 原始容器的属性 lay-filter="对应的值"
            var data = obj.data //获得当前行数据
                ,layEvent = obj.event; //获得 lay-event 对应的值
            if(layEvent === 'detail'){
                layer.msg('查看操作');
            } else if(layEvent === 'del'){
                layer.confirm('真的删除行么', function(index){
                    $.ajax({
                        url: '/index/Get_params/del',//地址
                        dataType:'json',//数据类型
                        type:'post',//类型
                        timeout:2000,//超时
                        data: {
                            id:data.id,
                        },
                        success:function(data){
                            var json = JSON.parse(data);
                            if(json.code === 0){
                                obj.del(); //删除对应行(tr)的DOM结构
                                layer.close(index);
                                layer.msg('已删除', {icon: 1});
                            }else {
                                layer.msg(json.msg,{icon: 6});
                            }
                        },
                        error:function(){
                            layer.msg('请求失败', {icon: 6});
                        },
                    })
                });
            } else if(layEvent === 'edit'){
                var id = data.id;
                layer.open({
                    type: 2,
                    area: ['50%','80%'],
                    shadeClose:true,
                    title:'详情',
                    maxmin: true,
                    Boolean:true,
                    //btn: ['确定', '取消'],
                    yes: function(index, layero){
                        // 按钮【按钮一】的回调                      
                        // alert("按钮【按钮一】的回调");
                    }, btn2: function (index, layero) {
                        //按钮【按钮二】的回调
                    },
                    success: function(layero){
                        layero.find('.layui-layer-btn').css('text-align', 'left')
                    },
                    //area: setpage(),
                    content: 'http://localhost:8000/index/Get_params/test1?id='+id //这里content是一个普通的String
                });
            }
        });

        //监听单元格编辑
        table.on('edit(test)', function(obj){
            var value = obj.value //得到修改后的值
                ,data = obj.data //得到所在行所有键值
                ,field = obj.field; //得到字段
            layui.use('jquery',function(){
                var id = data.id;
                $.ajax({
                    url: '/index/Get_params/update',//地址
                    dataType:'json',//数据类型
                    type:'post',//类型
                    timeout:2000,//超时
                    data: {
                        id:data.id,
                        field:field,
                        value:value
                    },
                    success:function(data){
                        console.log(data);
                        var json = JSON.parse(data);
                        if(json.code === 0){
                            layer.msg('[ID: '+ id +'] ' + field + ' 字段更改为:'+ value, {icon: 1});
                        }else {
                            layer.msg(json.msg,{icon: 6});
                        }
                    },
                    error:function(){
                        layer.msg('请求失败', {icon: 6});
                    },
                });
            });
        });

        // 搜索
         active = {
            reload: function(){
                var demoReload = $('#demoReload');
                var username = $("#name");
                //执行重载
                table.reload('testReload', {
                    page: {
                        curr: 1 //重新从第 1 页开始
                    }
                    ,where: {
                        id:demoReload.val(),
                        name:username.val()
                    }
                }, 'data');
            }
        };
        $('.demoTable .layui-btn').on('click', function(){
            var type = $(this).data('type');
            active[type] ? active[type].call(this) : '';
        });

    });
</script>
</body>
</html>

layui 静态文件:

链接:https://pan.baidu.com/s/1Qg5DBFwopK1w6Wj_9eguNg 
提取码:qcq5 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值