当前位置:首页 > CMS教程 > Thinkphp > 列表

thinkPHP5框架实现基于ajax的分页功能示例

发布:smiling 来源: PHP粉丝网  添加日期:2021-09-27 09:54:29 浏览: 评论:0 

这篇文章主要介绍了thinkPHP5框架实现基于ajax的分页功能,结合实例形式分析了thinkPHP5框架上进行ajax分页操作的具体步骤、实现代码与相关操作方法,需要的朋友可以参考下。

本文实例讲述了thinkPHP5框架实现基于ajax的分页功能,分享给大家供大家参考,具体如下:

最近一个页面的选项卡又牵扯到ajax分页,所以研究了一下tp5的ajax分页使用方法

首先看一下tp5的分页功能介绍

参数 描述

list_rows 每页数量

page 当前页

path url路径

query url额外参数

fragment url锚点

var_page 分页变量

type 分页类名

$caseDetails = CaseDetails::where(['status'=>1])->paginate(9,false,['path'=>'javascript:AjaxPage([PAGE]);']);

所以我们分页查询写成上面代码所示。

这样页面显示每个分页上面变成了AjaxPage('当前分页数,自动变化')

然后我们就可以在页面中写一个对应的函数AjaxPage(page),来完成对应的ajax请求查询,在返回到指定的视图中

ajax请求控制器方法如下

  1. public function all() 
  2. { 
  3.     $caseDetails = CaseDetails::where(['status'=>1])->paginate(9,false,['path'=>'javascript:AjaxPage([PAGE]);']); 
  4.     return view('getall',['res'=>$caseDetails]); 
  5. } 

如果选项卡带ID再次查询对应当前分类,可以使用如下

  1. public function getAjax($id,$page=1) 
  2. { 
  3.     $res = CaseDetails::where(['category'=>$id])->paginate(9,false,['page'=>$page,'path'=>"javascript:AjaxDetailsPage({$id},[PAGE]);"]); 
  4.     return view('',['res'=>$res]); 
  5. } 

js代码如下:

  1. function AjaxPage(page){ 
  2.   $.get('/index/successcase/getAll',{ page:page },function (data) { 
  3.     $('.little-content').html(data); 
  4.   }) 
  5. } 
  6. $('.on').hover(function(){ 
  7.   $.get('/index/successcase/all',function (data) { 
  8.     $('.little-content').html(data); 
  9.   }) 
  10. }); 
  11. $('.title-id').hover(function(){ 
  12.   var id = $(this).attr('title'); 
  13.   $.get('/index/successcase/getajax',{ 'id':id },function(data){ 
  14.     $('.little-content').html(data); 
  15.   }); 
  16. }); 
  17. function AjaxDetailsPage(id,page){ 
  18.   $.get('/index/successcase/getAjax',{ id:id,page:page },function (data) { 
  19.     $('.little-content').html(data); 
  20.   }) 
  21. } 

ajax作用范围视图

  1. {volist name="res" id="casedetails"} 
  2. <li class="little-block"> 
  3.   <img src="{$casedetails.pic}"/> 
  4.   <div class="mb-text"> 
  5.     <div class="text"> 
  6.       <h1>{$casedetails.name}</h1> 
  7.       <p class="p3">{$casedetails.caseCategory.name}</p> 
  8.       <a href="#" rel="external nofollow" >VIEW MORE</a> 
  9.     </div> 
  10.   </div> 
  11. </li> 
  12. {/volist} 
  13. <br> 
  14. {$res->render()}

Tags: thinkPHP5框架 ajax分页

分享到: