PHP CodeIgniter分页实例及多条件查询解决方案(推荐)


Posted in PHP onMay 20, 2017

最近在用CI框架的时候,用了CI的分页类,以前是用前端整分页,这次干脆用用框架自带的,自己这个健忘的脑袋,还是记录一下吧。

因为页面中有条件筛选的表单,所以想要完成的效果就是,输入条件后,分页跳转之后能维持所输入的条件。想了一下,自己的思路如下代码吧。

controller 代码

class Monitors extends CI_Controller {
public function warning(){
    $config= array();
    $config['per_page'] = 15; //每页显示的数据数
    $current_page = intval($this->input->get("per_page")); //获取当前分页页码数
   
 $status=$this->input->get("filter-status",TRUE);
 $level=$this->input->get('filter-level',TRUE);
 $timestamp=$this->input->get('filter-timestamp',TRUE);
    $all = $this->monitors_m->getAllData($current_page,$config['per_page'],$status,$timestamp,$level);
   //这里返回的有总条数和具体的数据,根据自己的情况略加修改即可
 $data['allevent'] = $all['content'];
 $config['total_rows']   = $all['count'];//总条数
    $config['num_links'] = 3;//页码连接数
 $config['use_page_numbers'] = TRUE; 
 $config['page_query_strings'] = TRUE;//关键配置
 $config['base_url'] = base_url().'index.php/monitors/warning?'&filter-status='.$status.'&filter-level='.$level.'&filter-timestamp='.$timestamp;//关键配置
 $this->load->library('pagination');//加载ci pagination类
 $this->pagination->initialize($config);
 $data['page'] = $this->pagination->create_links();//关键代码
 $this->load->view("monitors_v",$data);
}

关键配置参数

$config[‘page_query_string']

如果设置成true,则url则是”index.php/monitors/warning?per_page=20”这样的

【注】”per_page” 是默认传递的查询字符串,但也可以使用 $config[‘query_string_segment'] = ‘你的字符串' 来配置

在我的方案中,设置为TRUE,当然TRUE是默认值,不管也可以;

$config[‘base_url']

一开始只是设置为以下这种情况的时候,在某一页进行条件筛选是可以的,但是跳转后由于刷新的问题条件又没有了。

$config['base_url'] = base_url().'index.php/monitors/warning;

采用以下的方式即可,吼吼吼

$status=$this->input->get("filter-status",TRUE);
$level=$this->input->get('filter-level',TRUE);
$timestamp=$this->input->get('filter-timestamp',TRUE);
$config['base_url'] = base_url().'index.php/monitors/warning?'&filter-status='.$status.'&filter-level='.$level.'&filter-timestamp='.$timestamp;//关键配置

view页面代码

就一句话,在你需要放置分页元素的地方加上这样一句就行,这里的$page变量就是在controller里存进去的$this->pagination->create_links();

<?php echo $page?>

设置分页样式

这里采用的是bootstrap的样式

$config['first_link']   = "<<";//首页
$config['prev_link']   = "<";//上一页
$config['next_link']   = ">";//下一页
$config['last_link']   = ">>";//尾页
$config['full_tag_open'] = '<ul class="pagination pagination-split">'; 
$config['full_tag_close'] = '</ul>'; 
$config['first_tag_open'] = '<li>';//第一个链接的起始标签。
$config['first_tag_close'] = '</li>';//第一个链接的结束标签。
$config['next_tag_open'] = '<li>';//下一页链接的起始标签。
$config['next_tag_close'] = '</li>';//下一页链接的结束标签。
$config['prev_tag_open'] = '<li>';//上一页链接的起始标签。
$config['prev_tag_close'] = '</li>';//上一页链接的结束标签。
$config['cur_tag_open'] = '<li class="active"><a>';
$config['cur_tag_close'] = '</a></li>';//当前页链接的结束标签。
$config['num_tag_open'] = '<li>';//数字链接的起始标签。
$config['num_tag_close'] = '</li>';//数字链接的结束标签。

以上所述是小编给大家介绍的PHP CodeIgniter分页实例及多条件查询解决方案,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的,在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
php自动加载的两种实现方法
Jun 21 PHP
php 转换字符串编码 iconv与mb_convert_encoding的区别说明
Nov 10 PHP
解决phpcms更换javascript的幻灯片代码调用图片问题
Dec 26 PHP
phpMyAdmin安装并配置允许空密码登录
Jul 04 PHP
php中switch语句用法详解
Aug 17 PHP
php上传图片生成缩略图(GD库)
Jan 06 PHP
PHP中substr_count()函数获取子字符串出现次数的方法
Jan 07 PHP
PHP实现的同步推荐操作API接口案例分析
Nov 30 PHP
利用PHP获取网站访客的所在地位置
Jan 18 PHP
PHP SFTP实现上传下载功能
Jul 26 PHP
PHP单例模式与工厂模式详解
Aug 29 PHP
PHP从尾到头打印链表实例讲解
Sep 27 PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
May 20 #PHP
PHP实现对xml的增删改查操作案例分析
May 19 #PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
May 19 #PHP
php简单处理XML数据的方法示例
May 19 #PHP
PHP jQuery+Ajax结合写批量删除功能
May 19 #PHP
php对xml文件的增删改查操作实现方法分析
May 19 #PHP
PHP基于自增数据如何生成不重复的随机数示例
May 19 #PHP
You might like
php获取CSS文件中图片地址并下载到本地的方法
2014/12/02 PHP
php通过array_shift()函数移除数组第一个元素的方法
2015/03/18 PHP
PHP cURL初始化和执行方法入门级代码
2015/05/28 PHP
Yii2 rbac权限控制操作步骤实例教程
2016/04/29 PHP
PHP数组访问常用方法解析
2020/09/05 PHP
基于jQuery的弹出警告对话框美化插件(警告,确认和提示)
2010/06/10 Javascript
浅谈Javascript 数组与字典
2015/01/29 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
2016/09/20 Javascript
JS表格组件神器bootstrap table使用指南详解
2017/04/12 Javascript
MUI实现上拉加载和下拉刷新效果
2017/06/30 Javascript
Node.js的Koa实现JWT用户认证方法
2018/05/05 Javascript
详解node Async/Await 更好的异步编程解决方案
2018/05/10 Javascript
Vue中多个元素、组件的过渡及列表过渡的方法示例
2019/02/13 Javascript
Electron 调用命令行(cmd)
2019/09/23 Javascript
Layui数据表格判断编辑输入的值,是否为我需要的类型详解
2019/10/26 Javascript
云服务器部署Node.js项目的方法步骤(小白系列)
2020/03/23 Javascript
vue项目或网页上实现文字转换成语音播放功能
2020/06/09 Javascript
[01:32:22]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第一场 2月5日
2021/03/11 DOTA
Python开发的单词频率统计工具wordsworth使用方法
2014/06/25 Python
python获取本机mac地址和ip地址的方法
2015/04/29 Python
Python实现LRU算法的2种方法
2015/06/24 Python
python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
2017/03/12 Python
使用Python+Splinter自动刷新抢12306火车票
2018/01/03 Python
Python字典操作详细介绍及字典内建方法分享
2018/01/04 Python
opencv3/C++图像像素操作详解
2019/12/10 Python
在服务器上安装python3.8.2环境的教程详解
2020/04/26 Python
python3.7 openpyxl 在excel单元格中写入数据实例
2020/09/01 Python
Python读取图像并显示灰度图的实现
2020/12/01 Python
消防安全责任书范本
2014/04/15 职场文书
关于美容院的活动方案
2014/08/14 职场文书
班子成员四风问题自我剖析材料
2014/09/29 职场文书
《狼牙山五壮士》读后感:宁死不屈,视死如归
2019/08/16 职场文书
MySQL数据库⾼可⽤HA实现小结
2022/01/22 MySQL
Python编程中内置的NotImplemented类型的用法
2022/03/23 Python
Elasticsearch 基本查询和组合查询
2022/04/19 Python
V Rising 服务器搭建图文教程
2022/06/16 Servers