侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

在Thinkphp中使用ajax实现无刷新分页的方法

ThinkPHP  /  管理员 发布于 8年前   381

在Thinkphp目录的Lib\ORG\Util\目录里新建AjaxPage.class.php,写入一下内容:

// +----------------------------------------------------------------------// $Id: Page.class.php 2712 2012-02-06 10:12:49Z liu21st $class AjaxPage {// 分页栏每页显示的页数public $rollPage = 5;// 页数跳转时要带的参数public $parameter ;// 默认列表每页显示行数public $listRows = 20;// 起始行数public $firstRow ;// 分页总页面数protected $totalPages ;// 总行数protected $totalRows ;// 当前页数protected $nowPage ;// 分页的栏的总页数protected $coolPages ;// 分页显示定制protected $config = array('header'=>'条记录','prev'=>'上一页','next'=>'下一页','first'=>'第一页','last'=>'最后一页','theme'=>' %totalRow% %header% %nowPage%/%totalPage% 页 %upPage% %downPage% %first% %prePage% %linkPage% %nextPage% %end%');// 默认分页变量名protected $varPage;public function __construct($totalRows,$listRows='',$ajax_func,$parameter='') {$this->totalRows = $totalRows;$this->ajax_func = $ajax_func;$this->parameter = $parameter;$this->varPage = C('VAR_PAGE') ? C('VAR_PAGE') : 'p' ;if(!empty($listRows)) {$this->listRows = intval($listRows);}$this->totalPages = ceil($this->totalRows/$this->listRows); //总页数$this->coolPages = ceil($this->totalPages/$this->rollPage);$this->nowPage = !empty($_GET[$this->varPage])?intval($_GET[$this->varPage]):1;if(!empty($this->totalPages) && $this->nowPage>$this->totalPages) {$this->nowPage = $this->totalPages;}$this->firstRow = $this->listRows*($this->nowPage-1);}public function setConfig($name,$value) {if(isset($this->config[$name])) {$this->config[$name] = $value;}}public function show() {if(0 == $this->totalRows) return '';$p = $this->varPage;$nowCoolPage = ceil($this->nowPage/$this->rollPage);$url = $_SERVER['REQUEST_URI'].(strpos($_SERVER['REQUEST_URI'],'?')?'':"?").$this->parameter;$parse = parse_url($url);if(isset($parse['query'])) {parse_str($parse['query'],$params);unset($params[$p]);$url = $parse['path'].'?'.http_build_query($params);}//上下翻页字符串$upRow = $this->nowPage-1;$downRow = $this->nowPage+1;if ($upRow>0){$upPage="ajax_func."(".$upRow.")'>".$this->config['prev']."";}else{$upPage="";}if ($downRow <= $this->totalPages){$downPage="ajax_func."(".$downRow.")'>".$this->config['next']."";}else{$downPage="";}// << < > >>if($nowCoolPage == 1){$theFirst = "";$prePage = "";}else{$preRow = $this->nowPage-$this->rollPage;$prePage = "ajax_func."(".$preRow.")'>上".$this->rollPage."页";$theFirst = "ajax_func."(1)' >".$this->config['first']."";}if($nowCoolPage == $this->coolPages){$nextPage = "";$theEnd="";}else{$nextRow = $this->nowPage+$this->rollPage;$theEndRow = $this->totalPages;$nextPage = "ajax_func."(".$nextRow.")' >下".$this->rollPage."页";$theEnd = "ajax_func."(".$theEndRow.")' >".$this->config['last']."";}// 1 2 3 4 5$linkPage = "";for($i=1;$i<=$this->rollPage;$i++){$page=($nowCoolPage-1)*$this->rollPage+$i;if($page!=$this->nowPage){if($page<=$this->totalPages){$linkPage .= " ajax_func."(".$page.")'> ".$page." ";}else{break;}}else{if($this->totalPages != 1){$linkPage .= " ".$page."";}}}$pageStr = str_replace(array('%header%','%nowPage%','%totalRow%','%totalPage%','%upPage%','%downPage%','%first%','%prePage%','%linkPage%','%nextPage%','%end%'),array($this->config['header'],$this->nowPage,$this->totalRows,$this->totalPages,$upPage,$downPage,$theFirst,$prePage,$linkPage,$nextPage,$theEnd),$this->config['theme']);return $pageStr;}}?>

控制器里写入以下内容:

count(); //计算记录数$limitRows = 5; // 设置每页记录数$p = new AjaxPage($count, $limitRows,"user"); //第三个参数是你需要调用换页的ajax函数名$limit_value = $p->firstRow . "," . $p->listRows;$data = $credit->order('id desc')->limit($limit_value)->select(); // 查询数据$page = $p->show(); // 产生分页信息,AJAX的连接在此处生成$this->assign('list',$data);$this->assign('page',$page);$this->display();}}?>

模板文件如下:

Ajax无刷新分页
<{$list.id}>  <{$list.username}>
<{$page}>

以上所述是小编给大家介绍的在Thinkphp中使用ajax实现无刷新分页的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对站的支持!

您可能感兴趣的文章:

  • ThinkPHP5.1+Ajax实现的无刷新分页功能示例
  • ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
  • ThinkPHP中ajax使用实例教程
  • ThinkPHP中使用ajax接收json数据的方法
  • ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
  • TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
  • ThinkPHP实现ajax仿官网搜索功能实例
  • thinkPHP+ajax实现统计页面pv浏览量的方法
  • thinkPHP5框架实现基于ajax的分页功能示例
  • tp5框架基于Ajax实现列表无刷新排序功能示例


  • 上一条:
    php执行多个存储过程的方法【基于thinkPHP】
    下一条:
    Thinkphp实现短信验证注册功能
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • thinkphp + mongodb项目中数据加载慢问题分析及解决(0个评论)
    • thinkphp6框架中封装redis操作类(0个评论)
    • thinkphp6框架中实现定时任务功能流程步骤(0个评论)
    • Thinkphp5.1框架中实现Session+Redis会话共享流程步骤(0个评论)
    • TP5框架版本5.0.10安全漏洞根据官方补丁修复,也是本站安全漏洞修复(0个评论)
    • 近期文章
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-10
    • 2017-12
    • 2018-01
    • 2018-02
    • 2020-03
    • 2021-07
    • 2021-12
    • 2022-05
    • 2022-06
    • 2022-09
    • 2023-01
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客