不刷新分页的tp5框架实现方法分析
本文描述了不刷新分页的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编程有所帮助。
版权声明:不刷新分页的tp5框架实现方法分析是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。