tp5框架源码分析(tp5框架无刷新分页实现方法分析)
类别:编程学习 浏览量:244
时间:2021-10-18 11:33:08 tp5框架源码分析
tp5框架无刷新分页实现方法分析本文实例讲述了tp5框架无刷新分页实现方法。分享给大家供大家参考,具体如下:
已tp5 分页为例,
1.默认生成的分页 页码如下:
|
< ul class = "pagination" > < li >< a href = "?page=1" rel = "external nofollow" rel = "external nofollow" >«</ a ></ li > < li >< a href = "?page=1" rel = "external nofollow" rel = "external nofollow" >1</ a ></ li > < li class = "active" >< span >2</ span ></ li > < li class = "disabled" >< span >»</ span ></ li > </ ul > |
2.点击页码 值,跳转到对应的页面,并get传 page='1' or '2';
所以无刷新需要做到两点,阻止页码 a链接跳转 和 传值【post 和 get都可以】,ajax传值到后端控制器时,接收并存入$page即可,一定要存入$page,不能是其他变量名(因为框架封装的类里面获取当前页就是从$page中获取的!)
具体做法是:
1.进入首页面(带分页的页面),用js或jQuery 给页码a标签阻止跳转;
|
$( '#pag ul li a' ).attr( "href" , 'javascript:void(0);' ); |
2.给各页码元素绑定点击事件,所做的逻辑就是当页码被点击时,计算或获取到要跳转的页面值。
3.确定了要跳转的页面值后,然后ajax传值到后端(传递的就是page ,post get方式都可以)。
4.后端控制器获取到传值,并存入$page ,其他分页的逻辑按照正常做法查询即可,只是查询出来的数据需要组装成字符串返回去。(返回去的还需要有页码字符串,每一次无刷新的页码字符串都不同,每切换一个页面,需要重新再和数据更换一次)
4.1为什么定义为$page? 请去框架tp5 thinkphp/think/db/Query.php 找到paginate方法,入下位置(1333-1338行):
|
$page = isset( $config [ 'page' ]) ? (int) $config [ 'page' ] : call_user_func([ $class , 'getCurrentPage' , ], $config [ 'var_page' ]); $page = $page < 1 ? 1 : $page ; |
5.返回的数据通过jquery填入页面里,并删除之前的数据元素!
2-5 jquery代码如下:
|
$( function (){ //去掉分页的点击跳转 del_jump(); //当分页被点击时,进行无刷新分页 $( "#pag" ).on( 'click' , 'ul li a' , function (){ //当前被点击的页码数 或者 箭头 dianji = $( this ).html(); current_page = $( '.active span' ).html(); page = '' ; if (dianji == "«" ) { current_page = Number(current_page); page = String(current_page-1); } else if (dianji == "»" ) { current_page = Number(current_page); page = String(current_page+1); } else { page = dianji; } //发送ajax到后台 $.post( "{:url('Virtual/index')}" , { 'page' :page}, function (data){ //将返回的数据添加到页面上去 $( '#record_list' ).html(data.html); $( '#pag' ).html(data.pages); del_jump(); }, 'json' ); }); //去掉分页的点击跳转 function del_jump() { $( '#pag ul li a' ).attr( "href" , 'javascript:void(0);' ); } }); |
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/leo_jk/article/details/79260418
您可能感兴趣
- mssql 存储过程查询语句(MSSQL分页存储过程完整示例支持多表分页存储)
- mysql 高效分页(MySQL 分页查询的优化技巧)
- easyui combogrid分页
- dedecms后台内链如何制作(DedeCMS系统TAG标签和分页伪静态设置教程的实现)
- thinkphp5如何实现消息队列(thinkPHP5.1框架使用SemanticUI实现分页功能示例)
- laravel分页(laravel5.5添加echarts实现画图功能的方法)
- sql数据分页如何查询(SQL分页查询方式汇总)
- mysql百万数据分页查询优化方案(MySQL单表亿级数据分页怎么优化?)
- thinkphp分页效果怎样(thinkphp5+layui实现的分页样式示例)
- dedecsm模板中首页如何实现分页的三种方法比较分析(dedecsm模板中首页如何实现分页的三种方法比较分析)
- mybatis 分页查询配置(mybatis-plus分页传入参数后sql where条件没有limit分页信息操作)
- sqlserver分页查询sql语句(sql server实现分页的方法实例分析)
- mysql表锁行锁和分页锁(MySQL 不停机不锁表主从搭建)
- dede模板栏目调用(织梦DEDECMS5.7栏目列表页分页URL优化列表页重复的解决方案)
- sqlserver修改排序规则几种方法(SQL Server 分页编号的另一种方式推荐)
- 织梦栏目设置封面显示不正常(织梦列表页分页错位分页显示为竖排的解决方法)
- 盘古开天地 他创造了世界,谁创造了盘古 盘古是伏羲吗(盘古开天地他创造了世界)
- 关于队徽 你了解这些么 二(关于队徽你了解这些么)
- 冬天来了手脚冰凉 真不是因为上辈子你是折翼的天使(冬天来了手脚冰凉)
- 0 1 岁婴儿最强作息指南,照着做养出天使宝宝(01岁婴儿最强作息指南)
- 沪上这16所高校 萌新 礼包开箱 哪一款让你心动(沪上这16所高校萌新)
- 她救了被绑架的他,而这一切竟是一场阴谋...(她救了被绑架的他)
热门推荐
- nginx反向代码解决跨域访问(nginx 解决跨域问题嵌入第三方页面)
- 云服务器与服务器的区别(云服务器与网站空间区别在于什么)
- 如何在windows上搭建ftp服务器(Windows Server 2016如何搭建部署FTP服务器)
- css各种引用方法(CSS中的四种引用方式)
- 宝塔面板phpMyAdmin错误教程(宝塔面板phpMyAdmin报错502 Bad Gateway nginx解决方法)
- docker的postgres镜像包(Docker中运行PostgreSQL并推荐几款连接工具)
- 云主机与服务器有什么区别(云服务器是什么,云主机干什么用的?)
- scrollWidth,clientWidth,offsetWidth的区别
- js回调函数
- vue常用的指令和修饰符(Vue中 Vue.prototype使用详解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9