• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 详解thinkphp下部分内容的ajax无刷新分页

详解thinkphp下部分内容的ajax无刷新分页

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了thinkphp无刷新分页,ajax无刷新分页等相关知识,希望对您有所帮助

下面将给大家介绍thinkphp下页面内部分内容的ajax无刷新分页,希望对需要的朋友有所帮助!

thinkphp下页面内部分内容的ajax无刷新分页

thinkphp框架自带的分页类是每次翻页都要刷新一下整个页面,这种翻页的用户体验显然是不太理想的,我们希望每次翻页只刷新我们想要的数据集部分的数据,这样我们很容易想到ajax异步通信,用ajax与数据库(本人在开发过程中使用的是mysql数据库)异步交互,将从数据库查询的数据返回,用jquery替换原有的数据,从而在不刷新这个页面的情况下进行局部刷新,从而达到我们预期的效果。

thinkphp ajax 分页类

这个分页类是网上找到的资源,大家可以直接在自己的thinkphp里创建这么一个类,我这里类名是 AjaxPage.class.php,如有需要,可修改命名空间

<?php namespace Think;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 nowpage($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);     return $this->nowPage;} 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="<a class='ajaxify' id='big' href='JavaScript:;' onclick='".$this->ajax_func."(".$upRow.")'>".$this->config['prev']."</a>";    }else{        $upPage="";    }     if ($downRow <= $this->totalPages){        $downPage="<a class='ajaxify' id='big' href='JavaScript:;' onclick='".$this->ajax_func."(".$downRow.")'>".$this->config['next']."</a>";    }else{        $downPage="";    }    // << < > >>    if($nowCoolPage == 1){        $theFirst = "";        $prePage = "";    }else{        $preRow =  $this->nowPage-$this->rollPage;        $prePage = "<a class='ajaxify' id='big' href='JavaScript:;' onclick='".$this->ajax_func."(".$preRow.")'>上".$this->rollPage."页</a>";        $theFirst = "<a class='ajaxify' id='big' href='JavaScript:;' onclick='".$this->ajax_func."(1)' >".$this->config['first']."</a
  


 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 详解thinkphp下部分内容的ajax无刷新分页

相关文章

  • PHP怎么指定跳出几层循环
  • 如何解决Nginx部署thinkphp时报错500问题
  • 浅析CSS中怎么实现线性渐变(linear-gradient)
  • PS制作梦幻五彩斑斓的霓虹灯文字效果教程
  • Dede网站布局搜索引擎优化优化技能汇总
  • thinkphp5报错显示nginx 404页面的解决办法
  • 手把手教你在微信小程序中使用canvas绘制天气折线图(附代码)
  • vue-cli-service不是内部或外部命令怎么解决
  • Navicat for MySQL连接MySQL报2005错误怎么办
  • 手把手教你基于uniapp框架实现动态路由、动态tabbar

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • Vue模仿ElementUI的form表单实例代码
    • PhotoShop设计简洁清新的小按钮制作教程
    • js实现简单图片拖拽效果
    • Photoshop制作苹果语音助理Siri图标动画教程
    • CSS实现禁止页面文字被选中功能
    • 怎么为WordPress上下篇文章链接添加缩略图
    • Photoshop巧用素材合成绚丽美女海报教程
    • vue中data改变后让视图同步更新的方法
    • 百度频繁变更算法,我们该怎么办?
    • 浅谈bootstrapTable如何动态设置行和列的颜色

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有