宝哥软件园

不刷新分页的tp5框架实现方法分析

编辑:宝哥软件园 来源:互联网 时间:2021-08-20

本文描述了不刷新分页的tp5框架的实现方法。分享给大家参考,如下:

以tp5寻呼为例,

1.默认生成的页码如下:

ul class='pagination'lia href='?page=1 ' rel=' external nofollow ' rel=' external nofollow ' laquo;/a/lilia href='?page=1 ' rel=' external no follow ' rel=' external no follow ' 1/a/Lili class=' active ' span 2/span/Lili class=' disabled ' span raquo;/span/li/ul2。点击页码值,跳转到对应的页面,得到页面='1 '或' 2 ';

所以不刷新有两件事要做,防止页码A跳转和传值post和get都可以]。ajax向后端控制器传递值时,可以接收并存储在$page中,必须存储在$page中,不能是其他变量名(因为当前页面是从框架封装的类中的$page获取的!)

具体方法是:

1.进入首页(带分页的页面),使用js或jQuery标注页码a,防止跳转;

$('#pag ul阿利')。attr('href ',' JavaScript : void(0);');2.将click事件绑定到每个页码元素,逻辑是计算或获取页码被单击时要跳转的页面的值。

3.在确定要跳转的页面的值后,ajax将该值传递给后端(页面被传递,可以使用post get方法)。

4.后端控制器获取传递的值,并将其存储在$page中。其他页面的逻辑可以按照正常的做法进行查询,但是查询出来的数据需要组装成字符串返回。(返回也需要页码字符串,每次没有刷新页码字符串都不一样。每次切换页面时,都需要再次用数据替换。)

4.1为什么定义为$page?转到tp5 thinkphp/think/db/Query.php查找分页方法,并输入以下位置(第1333-1338行):

$page=isset($config['page'])?(int)$ config[' page ']: call _ user _ func([$ class,' getCurrentPage ',],$ config[' var _ page ']);$page=$page 1?1页:美元;

5.通过jquery将返回的数据填充到页面中,删除之前的数据元素!

2-5 jquery代码如下:

$(function(){ //Click跳转del_jump())不分页;//单击页面时,不刷新分页$(“# PAG”)。On ('click ',' ul阿利',function(){//当前点击的页数或箭头点击数=$(this)。html();current_page=$('。活动范围')。html();page=if(Dian Ji==' '){ current _ page=Number(current _ page);page=String(current _ page-1);} else if(Dian Ji==' '){ current _ page=Number(current _ page);page=String(current _ page 1);} else { page=dianji}//将ajax发送到后台$。post(' { : URL(' virtual/index ')} ',{'page' : page}),function(data){//将返回的数据添加到page $ ('# record _ list ')中。html(data . html);$('#pag ')。html(data . pages);del _ jump();},' JSON ');});//删除分页点击跳转函数del _ jump () {$ ('# pagul阿利')。attr ('href ',' JavaScript : void(0);');}});更多对thinkPHP感兴趣的读者可以查看本网站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》、《PHP模板技术总结》、0103010。

希望本文对基于ThinkPHP框架的PHP编程有所帮助。

更多资讯
游戏推荐
更多+