layui学习记录(一):数据表格渲染

1 前端代码

  • 代码

搭建前端界面,代码主要包含一个数据表格标签和表格行内操作的标签。属性均采用layui内置的。

<!--    数据表格-->
    <table class="layui-hide" id="test" lay-filter="test"></table>
    <!--    行操作:编辑 删除-->
    <script type="text/html" id="barDemo">
        <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>

采用layui文档里的方法级渲染。

    <script type="text/javascript">
    	//加载所需模块
        layui.use(['table','form','layer'], function(){
            var table = layui.table;
            var form = layui.form;
            var layer = layui.layer;

            //方法级渲染表格
            table.render({
                elem: '#test'
                ,url:"此处是需要请求的后台URL"
                ,cellMinWidth: 80 //全局定义常规单元格的最小宽度,layui 2.2.1 新增
                ,toolbar: '#toolbarDemo' //开启头部工具栏,并为其绑定左侧模板
                ,defaultToolbar: ['filter', 'exports', 'print', { //自定义头部工具栏右侧图标。如无需自定义,去除该参数即可
                    title: '提示'
                    ,layEvent: 'LAYTABLE_TIPS'
                    ,icon: 'layui-icon-tips'
                }]
                ,title: '用户数据表'
                ,cols: [[
                    {type: 'checkbox', fixed: 'left'}
                    ,{field:'id', title:'ID',  fixed: 'left',align: 'center',unresize: true, sort: true}
                    ,{field:'meeting_register_id', title:'用户名', align:'center',width:120}
                    ,{field:'mail_address', title:'邮箱', align:'center'}
                    ,{field:'mail_type', title:'邮件类型',  align: 'center',sort: true}
                    ,{field:'delivery_time', title:'送达时间', align: 'center'}
                    ,{field:'delivery_status', title:'送达状态',align: 'center'}
                    // ,{field:'experience', title:'积分', width:80, sort: true}
                    // ,{field:'ip', title:'IP', width:120}
                    // ,{field:'logins', title:'登入次数', width:100, sort: true}
                    // ,{field:'joinTime', title:'加入时间', width:120}
                    ,{fixed: 'right', title:'操作', toolbar: '#barDemo', align:'center',width:200}
                ]]
                ,id:'email_form'
                ,page: true
            });
  • 界面效果
    后台的表格界面

2 后台数据处理

利用ThinkPHP5的 \think\Request 类,获取当前的请求信息。layui的表格渲染采用的是异步数据接口,默认的method:'GET',并且返回数据需要进行JSON编码。不符合默认格式需要添加parseData、response参数。参考:layui异步数据接口

$request = Request::instance();
$request->get();

全部php后台代码:
$email_tables=new CollectEmail();是实例化了一个类,其中getTablesCount()getTables()是和数据库进行交互的函数。根据自己的需求写~

    //数据表格
    public function table(){
        $request=Request::instance();
        if ($request->isAjax()){
            $data=array();
            $pageSize = $request->get('limit')?$request->get('limit'):10;
            $page = $request->get('page')?$request->get('page'):1;
            $email_tables=new CollectEmail();
            $res['code'] = 0;
            $res['msg'] = "";
            $res['count'] = $email_tables->getTablesCount($data);
            $res['data'] =  $email_tables->getTables($data,$page,$pageSize);
            $json_data=json_encode($res);
            echo $json_data;
        }
    }

3 总结

layui的数据表格渲染部分大概做了半天的时间,由于还不是很熟悉TP5框架和layui,中间最困扰我的就是前端和后台还有数据库的交互的部分。最最重要的是数据返回的格式,否则会出现数据接口错误的报错,其余的内容按照文档里的修改成自己需要的就好了,文档还是写的比较清晰的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值