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:'http://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@126.com
* Locator: http://www.phpclass.top
* Date: 2017/10/23
* Time: 11:58
*/
namespace app\back\model; use think\Model; class Topic extends Model { }
测试结果:
Thinkphp5之ajax分页实现_paginate()参数详细的更多相关文章
- thinkphp5.0 ajax分页
放到 ***thinkphp\library\think\paginator\driver\Ajaxbootstrap.php 分页的type参数为ajaxbootstrap <?php/ ...
- JQuery中的AJAX参数详细介绍
Jquery中AJAX参数详细介绍 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址. type String (默认: "GET") 请求方 ...
- 转载 Jquery中AJAX参数详细介绍
Jquery中AJAX参数详细列表: 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址. type String (默认: "GET") 请求方式 ...
- Jquery中AJAX参数详细(1)-转
http://www.cnblogs.com/qiufuwu618/archive/2012/12/20/2826190.html Jquery中AJAX参数详细列表: 参数名 类型 描述 url S ...
- Jquery中AJAX参数详细介绍
Jquery中AJAX参数详细列表: 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址. type String (默认: "GET") 请求方式 ...
- thinkphp5.0多条件模糊查询以及多条件查询带分页如何保留参数
1,多条件模糊查询 等于:map[‘id′]=array(‘eq′,100);不等于:map[‘id′]=array(‘eq′,100);不等于:map[‘id’] = array(‘neq’,100 ...
- [jQuery]jQuery DataTables插件自定义Ajax分页实现
前言 昨天在博客园的博问上帮一位园友解决了一个问题,我觉得有必要记录一下,万一有人也遇上了呢. 问题描述 园友是做前端的,产品经理要求他使用jQuery DataTables插件显示一个列表,要实现分 ...
- 精心挑选的12款优秀 jQuery Ajax 分页插件和教程
在这篇文章中,我为大家收集了12个基于 jQuery 框架的 Ajax 分页插件,这些插件都提供了详细的使用教程和演示.Ajax 技术的出现使得 Web 项目的用户体验有了极大的提高,如今借助优秀的 ...
- 转:精心挑选的12款优秀 jQuery Ajax 分页插件和教程
在这篇文章中,我为大家收集了12个基于 jQuery 框架的 Ajax 分页插件,这些插件都提供了详细的使用教程和演示.Ajax 技术的出现使得 Web 项目的用户体验有了极大的提高,如今借助优秀的 ...
随机推荐
- 翻译:《实用的Python编程》03_05_Main_module
目录 | 上一节 (3.4 模块) | 下一节 (3.6 设计讨论) 3.5 主模块 本节介绍主程序(主模块)的概念 主函数 在许多编程语言中,存在一个主函数或者主方法的概念. // c / c++ ...
- javaweb遇到的报错及解决方式
javaweb报错问题以及解决方案 问题(报错信息):Application Server was not connected before run configuration stop, reaso ...
- 记录一个在配置虚拟环境是遇到的错误(virtualenv)
原配置文件 export WORKON_HOME=~/Envs #设置virtualenv的统一管理目录 export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no- ...
- 选择 FreeBSD 而不是 Linux 的技术性原因1
Ports FreeBSD Ports 是一个惊人的工程壮举.NetBSD 的 pkgsrc (package source) 和 OpenBSD 的 ports collection 都源于 Fre ...
- DDD实战课--学习笔记
目录 学好了DDD,你能做什么? 领域驱动设计:微服务设计为什么要选择DDD? 领域.子域.核心域.通用域和支撑域:傻傻分不清? 限界上下文:定义领域边界的利器 实体和值对象:从领域模型的基础单元看系 ...
- 003-try-catch-finally-return执行顺序问题
一.try-catch-finally-return执行顺序问题 0.原始执行顺序 try - > finally try -> catch -> finally 1.try cat ...
- P2766 最长不下降子序列问题 题解(网络流)
题目链接 最长不下降子序列问题 解题思路 分成三小问解决. 第一小问,求\(LIS\),因为\(n<=500\),直接\(O(N^2)\)暴力求解即可. 第二三小问,建立模型用网络流求解. 对于 ...
- 从零开始编写一个BitTorrent下载器
从零开始编写一个BitTorrent下载器 BT协议 简介 BT协议Bit Torrent(BT)是一种通信协议,又是一种应用程序,广泛用于对等网络通信(P2P).曾经风靡一时,由于它引起了巨大的流量 ...
- JVM之对象创建、对象内存布局、对象访问定位
对象创建 类加载过后可以直接确定一个对象的大小 对象栈上分配是通过逃逸分析判定.标量替换实现的,即把不存在逃逸的对象拆散,将成员变量恢复到基本类型,直接在栈上创建若干个成员变量 选择哪种分配方式由Ja ...
- Java 添加数字签名到Excel以及检测、删除签名
Excel中可添加数字签名以供文档所有者申明文档的所有权或有效性.文本以Java代码示例介绍如何在Excel文档中对数字签名功能进行相关操作,包括如何添加签名到Excel.检测Excel文档是否已签名 ...