本文实例讲述了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"}
{$res->render()}
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。