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 相关文章推荐
一个oracle+PHP的查询的例子
Oct 09 PHP
PHP 数组教程 定义数组
Oct 23 PHP
完美解决PHP中文乱码
Nov 26 PHP
php中curl使用指南
Feb 05 PHP
PHP之密码加密的几种方式
Jul 29 PHP
PHP实现的简单缓存类
Jul 29 PHP
PHP比较运算符的详细介绍
Sep 29 PHP
PHP 7的一些引人注目的新特性简单介绍
Nov 08 PHP
浅析Yii2缓存的使用
May 10 PHP
PHP封装XML和JSON格式数据接口操作示例
Mar 06 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
May 29 PHP
php7连接MySQL实现简易查询程序的方法
Oct 13 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开启gzip页面压缩实例代码
2010/03/11 PHP
让codeigniter与swfupload整合的最佳解决方案
2014/06/12 PHP
php精确的统计在线人数的方法
2015/10/21 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
2019/10/11 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
用于判断用户注册时,密码强度的JS代码
2009/01/01 Javascript
E3 tree 1.6在Firefox下显示问题的修复方法
2013/01/30 Javascript
js substr支持中文截取函数代码(中文是双字节)
2013/04/17 Javascript
关于jquery.validate1.9.0前台验证的使用介绍
2013/04/26 Javascript
js调试工具Console命令详解
2014/10/21 Javascript
浅析Node.js的Stream模块中的Readable对象
2015/07/29 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
2016/01/05 Javascript
莱鸟介绍javascript onclick事件
2016/01/06 Javascript
jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题
2016/05/31 Javascript
Vue.js系列之vue-router(上)(3)
2017/01/03 Javascript
JavaScript在form表单中使用button按钮实现submit提交方法
2017/01/23 Javascript
详解Vue源码学习之callHook钩子函数
2018/07/25 Javascript
Vue 路由 过渡动效 数据获取方法
2018/07/31 Javascript
小程序图片长按识别功能的实现方法
2018/08/30 Javascript
vue实现打印功能的两种方法
2018/09/07 Javascript
微信小程序授权登陆及每次检查是否授权实例代码
2019/09/18 Javascript
JavaScript如何处理移动端拍摄图片旋转问题
2019/11/16 Javascript
JavaScript中条件语句的优化技巧总结
2020/12/04 Javascript
python 远程统计文件代码分享
2015/05/14 Python
基于python中staticmethod和classmethod的区别(详解)
2017/10/24 Python
Python sqlite3查询操作过程解析
2020/02/20 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
2020/08/04 Python
世界上获奖最多的手机镜头:Olloclip
2018/03/03 全球购物
Java的类与C++的类有什么不同
2014/01/18 面试题
土木工程应届生求职信
2013/10/31 职场文书
运动会方阵解说词
2014/02/12 职场文书
《厄运打不垮的信念》教学反思
2014/04/13 职场文书
湘江北去观后感
2015/06/15 职场文书
四大名著读书笔记
2015/06/25 职场文书
MongoDB支持的数据类型
2022/04/11 MongoDB