thinkPHP5使用laypage分页插件实现列表分页功能_php实例
这篇文章主要为大家详细介绍了thinkPHP5使用laypage分页插件实现列表分页功能,具有一定的参考价值,对thinkPHP5感兴趣的小伙伴们可以参考一下,一起来看看关于thinkPHP5的laypage分页吧
一、背景
在使用thinkPHP框架做项目的时候,经常会遇到对列表的内容进行分页。thinkPHP框架中自带了分页功能,但是有缺陷。这个缺陷是每次返回每页数据给页面时需要重新加载页面所需要的JS、CSS等资源。如果页面包含的JS过多、过大,会增加流量压力。因此,我们使用laypage插件。每次使用ajax请求获取每页的数据就可以了,不需要重复加载页面。
二、分页流程
如下图所示:
流程说明:
1) 调研App.php中的函数,该函数调用fetch函数。fetch函数渲染list.html.
2) list.html 调用获取总页数的函数,并得到总页数。
3) 获取第一页数据。
4)初始化laypage分页插件。
5)点击页码,触发分页查询。
三、实现分页功能相关的代码
1、App.php Controller的代码
//fetch渲染页面 public function index() { return $this->fetch('list'); } //根据页面传入的页码查询数据 public function getPage() { <span style="color:#FF0000;">// 获取页面传入的页码 </span> $nowpage = input("page"); //每页显示10条数据 $limits = 10; $app = new appInfo(); $page_info = $app->limit(($nowpage * $limits), $limits)->select(); // ajax 分页输出 $info = ['pageinfo'=>$page_info,'nowpage'=>$nowpage,'nowpage'=>$nowpage]; return json($info); } //获取所有页数 public function getAllPage(){ try{ $count = appInfo::count(); $limits = 10; // 计算总页面 $allpage = ceil($count / $limits); $info =['allpage'=>$allpage]; }catch (\Exception $e){ abort(500,$e->getMessage(),['result'=>TopsecGWErrer::TOPSEC_GW_ERR_NO_UNKNOWN]); } return json($info); }
2、list.html中的html代码
<p class="box-body"> <table id="table1" class="table table-bordered table-striped"> <thead> <tr> <th>应用名称</th> <th>应用类型</th> <th>应用图像</th> <th>创建日期</th> <th>修改日期</th> <th>操作</th> </tr> </thead> <tbody id="table_body"></tbody> <tfoot> </tfoot> </table> <p id="result"></p> <p class=" "> <button id="add_app" type="button" class="btn btn-primary col-xs-offset-5" > <span class='fa fa-tasks white'></span>丨添加应用 </button> </p> <p id="content"> </p> <p class="box-body"> <button id="add_img" type="button" class="btn btn-primary col-xs-offset-5" > <span class='fa fa-tasks white'></span>丨添加图片 </button> </p> <!-- /.box-body --> </p>
3、list.html中的jQuery代码
//pageCount:总页数。用于初始化laypage分页控件。 //pageIndex:初始化当前页。显示第一页。 //currentPage:当前页数。 //getPageData:获取每页数据的函数。 //url:获取每页数据的方法的路径。由控制器和函数名组成。 function jsonPage(pageCount, pageIndex,currentPage, getPageData,url) { var laypageindex = laypage({ cont: 'result', //容器。值支持id名、原生dom对象,jquery对象。 skin: '#3c8dbc', pages: pageCount, //通过后台拿到的总页数 curr: pageIndex, //初始化当前页 prev: '上一页', //若不显示,设置false即可 next: '下一页', //若不显示,设置false即可 skip: true, //是否开启跳页 jump: function (obj, first) { //触发分页后的回调 //getPageData(1); if (!first) { //点击跳页触发函数自身,并传递当前页:obj.curr getPageData(url,obj.curr); currentPage = obj.curr; } } }); } /url:获取总页数据的方法的路径。由控制器和函数名组成。 function getAllpage(url){ var tmp ; $.ajax({ type: "GET", dataType: "json", async: false, url: PUBLIC_BASE+url, success: function(json) { var data = eval(json); tmp=data.allpage; }, error: function(json) { } }); return tmp; } //data:每页的数据。由JSON对象组成。 function instantiation(data) { //begin $.each $.each(data.pageinfo, function (index, item) { $("#table_body").append($('<tr class="table_tr"/>') .append($("<td/>").html(item.name)) .append($("<td/>").html(item.desc)) .append($("<td/>").html("<img src='"+item.appImg+"' />")) .append($("<td/>").html(item.create_time)) .append($("<td/>").html(item.update_time)) .append( $("<td />") .append($("<a class='yellow' id='view"+item.id+"'><i class='fa fa-eye fa-fw'></i>查看丨 </a>")) .append($("<a class='green' id='edit"+item.id+"'><i class='fa fa-edit fa-fw'></i>编辑丨 </a>")) .append($("<a class='red' id='delete"+item.id+"'><i class='fa fa-remove fa-fw'></i>删除丨 </a>")) .append($("<a class='blue' id='forbid" + item.id + "'><i class='fa fa-ban fa-fw'></i>禁用</a>")) ) ); $("#view"+item.id).click(function() { fillMainContent("/application/application?model=view&id="+item.id); }) $("#edit"+item.id).click(function() { fillMainContent("/application/application?model=edit&id="+item.id); }) $("#delete"+item.id).click(function() { deleteApp(item.id); alert("删除成功"); }) $("#forbid"+item.id).click(function() { deleteApp(item.id); alert("删除成功"); getPageData(currentPage); }) }); //end $.each } //获取每页的数据。curr:页码 ,curl:获取数据的路径。 function getPageData(url,curr) { curr = curr-1; $.ajax({ type: "GET", dataType: "json", data: {page:curr}, url: PUBLIC_BASE+url, success: function(json) { $('#table_body').empty(); var data = eval(json); console.log(data); instantiation(data); }, error: function(json) { var data = eval(json); console.log(data); } }); } <span style="color:#FF0000;">//调用函数实现分页</span> //获取总页数,用于初始化分页控件总页数 pageCount= getAllpage("/application/getAllPage"); //获取第一页数据 getPageData("/application/getpage",1); //初始化分页控件并分页 jsonPage(pageCount,pageIndex,currentPage,getPageData,"/application/getpage");
四、参考资源
http://laypage.layui.com/
以上就是本文的全部内容,希望对大家的学习有所帮助。
相关推荐:
以上是thinkPHP5使用laypage分页插件实现列表分页功能_php实例的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

字符串是由字符组成的序列,包括字母、数字和符号。本教程将学习如何使用不同的方法在PHP中计算给定字符串中元音的数量。英语中的元音是a、e、i、o、u,它们可以是大写或小写。 什么是元音? 元音是代表特定语音的字母字符。英语中共有五个元音,包括大写和小写: a, e, i, o, u 示例 1 输入:字符串 = "Tutorialspoint" 输出:6 解释 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。总共有 6 个元

PHP的魔法方法有哪些?PHP的魔法方法包括:1.\_\_construct,用于初始化对象;2.\_\_destruct,用于清理资源;3.\_\_call,处理不存在的方法调用;4.\_\_get,实现动态属性访问;5.\_\_set,实现动态属性设置。这些方法在特定情况下自动调用,提升代码的灵活性和效率。

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

PHP和Python各有优势,选择依据项目需求。1.PHP适合web开发,尤其快速开发和维护网站。2.Python适用于数据科学、机器学习和人工智能,语法简洁,适合初学者。

PHP在电子商务、内容管理系统和API开发中广泛应用。1)电子商务:用于购物车功能和支付处理。2)内容管理系统:用于动态内容生成和用户管理。3)API开发:用于RESTfulAPI开发和API安全性。通过性能优化和最佳实践,PHP应用的效率和可维护性得以提升。

PHP是一种广泛应用于服务器端的脚本语言,特别适合web开发。1.PHP可以嵌入HTML,处理HTTP请求和响应,支持多种数据库。2.PHP用于生成动态网页内容,处理表单数据,访问数据库等,具有强大的社区支持和开源资源。3.PHP是解释型语言,执行过程包括词法分析、语法分析、编译和执行。4.PHP可以与MySQL结合用于用户注册系统等高级应用。5.调试PHP时,可使用error_reporting()和var_dump()等函数。6.优化PHP代码可通过缓存机制、优化数据库查询和使用内置函数。7

PHP仍然具有活力,其在现代编程领域中依然占据重要地位。1)PHP的简单易学和强大社区支持使其在Web开发中广泛应用;2)其灵活性和稳定性使其在处理Web表单、数据库操作和文件处理等方面表现出色;3)PHP不断进化和优化,适用于初学者和经验丰富的开发者。
