Thinkphp5之ajax分页实现_paginate()参数详细Thinkphp5 做数据搜索需要带关键词分页,如何将查询条件带⼊到分页中,本⽂详细介绍Thinkphp5 分页带参数
⼀、基本使⽤⽅法:
$list = Db::name('user')->where('status',1)->paginate(10);
⼆、查看thinkphp5 paginate()函数
paginate()函数可以带三个参数:
$listRows  每页数量数组表⽰配置参数
$simple  是否简洁模式或者总记录数如果为true,那么分页的就是只有上⼀页和下⼀页
$config  配置参数具体可以⾃⼰传⼊或者在配置⽂件中配置
$config 参数具体配置
参数描述
list_rows每页数量
page当前页
path url路径
query url额外参数
fragment url锚点
var_page分页变量
type分页类名
三、解决⽅案:
$list = Db::name('user')->where('status',1)->paginate(10,false,
[
'type'    => 'Bootstrap',
'var_page' => 'page',
/
/使⽤jqery ⽆刷新分页
'path'=>'javascript:AjaxPage([PAGE]);'
//第⼀种⽅法,使⽤数组⽅式传⼊参数
'query' => ['keyword'=>$keyword],
// 第⼆种⽅法,使⽤函数助⼿传⼊参数
// 'query' => request()->param(),
]
);
使⽤时在html模板页相应位置放⼊{$list->render()}
<!-- 分页 -->
<div class="row">
<div id="result">
{$list->render()}
</div>
</div>
此时页⾯⾥会⽣成⼀个页码界⾯.
虽然⽅法很简单,但是存在⼀个问题,每次点击页⾯都要刷新,⽤户体验很不好,所以要在tp5原有分页类的基础上加⼀个ajax操作,直接上代码:模板jquery_ajax代码:
<script>
var AjaxPage = function(page){
$.ajax({
url:'xxx/public/index.php/back/topic/ajaxList',
type:'post',
dataType:'json',
data: {apage:page},
success:function(data){
//console.log(data)
$("#result").html(data.page);
}
});
}
</script>
控制器controller\Topic.php
//显⽰分类管理界⾯
public function listAction(){
$list = model('Topic')->paginate(10,false,[
'type'    => 'Bootstrap',
'var_page' => 'page',
'path'=>'javascript:AjaxPage([PAGE]);',
//使⽤函数助⼿传⼊参数
'query' => request()->param(),
]);
//        $res = $mem->getList();
$this->assign('list',$list);
return $this->fetch('list');
}
public function ajaxListAction(){
$page = request()->param('apage');
if (!empty($page)) {
$rel = model('topic')->paginate(10,false,[
'type'    => 'Bootstrap',
'var_page' => 'page',
'page' => $page,
'path'=>'javascript:AjaxPage([PAGE]);',
]);
$page = $rel->render();
}
return json(['list'=>$rel,'page'=>$page]);
}
因为使⽤了模型⽅法,还要定义⼀个模型类model\Topic.php
<?php
/**
* Created by PhpStorm.
* User: houzhyan
* mail: houzhyan@126jquery实现ajax
* Locator: p
* Date: 2017/10/23
* Time: 11:58
*/
namespace app\back\model;
use think\Model;
class Topic extends Model {
}
测试结果:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。