首页 > 开发 > PHP > 正文

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

2024-05-04 22:42:57
字体:
来源:转载
供稿:网友

本文实例讲述了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请求控制器方法如下

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

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

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

js代码如下:

function AjaxPage(page){  $.get('/index/successcase/getAll',{ page:page },function (data) {    $('.little-content').html(data);  })}$('.on').hover(function(){  $.get('/index/successcase/all',function (data) {    $('.little-content').html(data);  })});$('.title-id').hover(function(){  var id = $(this).attr('title');  $.get('/index/successcase/getajax',{ 'id':id },function(data){    $('.little-content').html(data);  });});function AjaxDetailsPage(id,page){  $.get('/index/successcase/getAjax',{ id:id,page:page },function (data) {    $('.little-content').html(data);  })}

ajax作用范围视图

{volist name="res" id="casedetails"}<li class="little-block">  <img src="{$casedetails.pic}"/>  <div class="mb-text">    <div class="text">      <h1>{$casedetails.name}</h1>      <p class="p3">{$casedetails.caseCategory.name}</p>      <a href="#" rel="external nofollow" >VIEW MORE</a>    </div>  </div></li>{/volist}<br>{$res->render()}            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表