layui框架实战案例(1):layui组件table异步加载数据结合php后台动态翻页的解决方案

简介: layui框架实战案例(1):layui组件table异步加载数据结合php后台动态翻页的解决方案

layui组件table美观度和实用性都是比较完美的。但是在使用table翻页功能的时候,需要对后台进行传参,并且返回的json数据一定要符合一定的规范,否则将无法实现翻页。


20200730162635195.png


layui版本: layui-v2.5.6

**php代码:**原生代码,无框架;

返回JSON格式规范:

{"code":0,
"msg":"",
"count":1000,
"data":[{"id":10000,"username":"user-0","sex":"女","city":"城市-0","sign":"签名-0","experience":255,"logins":24,"wealth":82830700,"classify":"作家","score":57}]
}

解决方案:

一、引入样式表及layui.js

  <link rel="stylesheet" href="layui/css/layui.css" media="all">
    <script src="layui/layui.js" charset="utf-8"></script>

二、table容器

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

三、表格渲染

<script>
    layui.use(['table', 'layer', 'form'], function () {
        var table = layui.table;
        table.render({
            elem: '#test'
            , url: 'index.php'
            , layout: ['count', 'prev', 'page', 'next', 'limit', 'skip']
            , limits: [5, 10, 15, 20]
            , toolbar: true
            , even: true
            , page: true
            , cols: [[
                {field: 'orders_id', title: 'Id', sort: true}
                //, {field: 'orders_name', title: '姓名', sort: true}
                , {field: 'pay_status', title: '性别'}
                , {field: 'orders_category', title: '文化程度'}
                , {field: 'orders_payway', title: '民族'}
                //, {field: 'orders_tel', title: '联系电话'}
                //, {field: 'orders_price', title: '身份证号'}
            ]]
            , done: function (res, curr, count) {
                //如果是异步请求数据方式,res即为你接口返回的信息。
                //如果是直接赋值的方式,res即为:{data: [], count: 99} data为当前页数据、count为数据总长度
                console.log(res);
                //得到当前页码
                console.log(curr);
                //得到数据总量
                console.log(count);
            }
        });
    });
</script>

四、php后端

<?php
//处理前台页面传过来的数据
@$p = $_GET['page'] == "" ? 1 : $_GET['page'];//获取用户选择的页码
@$pagesize = $_GET['limit'] == "" ? 10 : $_GET['limit'];//获取用户选择的每页显示多少条数据
/*echo $p;
echo $pagesize;*/
//连接数据库
$dsn = 'mysql:dbname=lingcheng;host=127.0.0.1';
$user = 'root';
$pass = 'root';
$pdo = new PDO($dsn, $user, $pass);
//查询数据
$res = [];
$limit = ($p - 1) * $pagesize;//偏移量
$sql = "select * from po_orders order by orders_id limit $limit,$pagesize";
$stmt = $pdo->query($sql);
$res['code'] = 0;
$res['msg'] = "";
$res['count'] = 20;
$data = $stmt->fetchAll("4");
$res['data'] = $data;
echo json_encode($res);


Done !

相关文章
|
3月前
|
JSON 数据处理 PHP
PHP数组处理技巧:高效操作数据集合
PHP数组处理技巧:高效操作数据集合
|
3月前
|
JSON 安全 大数据
PHP中的数组处理艺术:灵活高效的数据操作
PHP中的数组处理艺术:灵活高效的数据操作
|
3月前
|
JSON 定位技术 PHP
PHP技巧:解析JSON及提取数据
这就是在PHP世界里探索JSON数据的艺术。这场狩猎不仅仅是为了获得数据,而是一种透彻理解数据结构的行动,让数据在你的编码海洋中畅游。通过这次冒险,你已经掌握了打开数据宝箱的钥匙。紧握它,让你在编程世界中随心所欲地航行。
151 67
|
6月前
|
数据库连接 PHP 数据库
【YashanDB知识库】PHP使用ODBC驱动无法获取长度为256char以上的数据
【YashanDB知识库】PHP使用ODBC驱动无法获取长度为256char以上的数据
|
6月前
|
Oracle 关系型数据库 MySQL
【YashanDB知识库】php查询超过256长度字符串,数据被截断的问题
本文分析了YashanDB中PHP通过ODBC查询数据时出现的数据截断问题,表现为超过256字节的数据被截断,以及isql工具无法显示超过300字节长度的数据。问题根源在于YashanDB的ODBC驱动仅支持单次查询,且PHP扩展库默认缓冲区限制。解决方案包括改用PHP ODBC扩展库而非PDO_ODBC,以及调整isql代码逻辑以支持循环取数或一次性读取完整数据。文章还提供了具体代码示例和规避方法,适用于23.2.4.14及更早版本。
【YashanDB知识库】php查询超过256长度字符串,数据被截断的问题
|
8月前
|
SQL 缓存 PHP
PHP框架详解 - symfony框架
Symfony框架凭借其灵活性、高性能和强大的社区支持,成为PHP开发领域的重要工具。无论是初学者还是资深开发者,都可以通过Symfony快速构建高质量的Web应用程序。通过深入理解Symfony的核心组件和最佳实践,开发者可以充分发挥其优势,提升开发效率和代码质量。
159 24
|
7月前
|
Oracle 关系型数据库 MySQL
【YashanDB 知识库】php 查询超过 256 长度字符串,数据被截断的问题
php 查询超过 256 字节数据,显示被截断:yashandb 的 odbc 驱动接口 SQLGetData 现在只支持单次查询,不支持多次取数据的操作。 isql 显示不出来,isql 工具最大只查询 300 长度的数据,超过了该长度未正常显示。
|
12天前
|
关系型数据库 MySQL PHP
PHP和Mysql前后端交互效果实现
本文介绍了使用PHP连接MySQL数据库的基本函数及其实现案例。内容涵盖数据库连接、选择数据库、执行查询、获取结果等常用操作,并通过用户登录和修改密码的功能实例,展示了PHP与MySQL的交互过程及代码实现。
105 0
PHP和Mysql前后端交互效果实现
|
5月前
|
关系型数据库 MySQL Linux
查看Linux、Apache、MySQL、PHP版本的技巧
以上就是查看Linux、Apache、MySQL、PHP版本信息的方法。希望这些信息能帮助你更好地理解和使用你的LAMP技术栈。
292 17
|
6月前
|
关系型数据库 MySQL PHP
源码编译安装LAMP(HTTP服务,MYSQL ,PHP,以及bbs论坛)
通过以上步骤,你可以成功地在一台Linux服务器上从源码编译并安装LAMP环境,并配置一个BBS论坛(Discuz!)。这些步骤涵盖了从安装依赖、下载源代码、配置编译到安装完成的所有细节。每个命令的解释确保了过程的透明度,使即使是非专业人士也能够理解整个流程。
149 18