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 相关文章推荐
经典的PHPer为什么被认为是草根?
Apr 02 PHP
phpinfo 系统查看参数函数代码
Jun 05 PHP
关于php mvc开发模式的感想
Jun 28 PHP
PHP 数据结构 算法 三元组 Triplet
Jul 02 PHP
php中使用cookie来保存用户登录信息的实现代码
Mar 08 PHP
VIM中设置php自动缩进为4个空格的方法详解
Jun 14 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
Jun 23 PHP
基于PHP实现假装商品限时抢购繁忙的效果
Oct 16 PHP
php设计模式之委托模式
Feb 13 PHP
PHP实现根据时间戳获取周几的方法
Feb 26 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
Mar 23 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
Apr 14 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 ios推送(代码)
2013/07/01 PHP
让IE8支持DOM 2(不用框架!)
2009/12/31 Javascript
判断用户的在线状态 onbeforeunload事件
2011/03/05 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
2013/11/28 Javascript
jquery删除提示框弹出是否删除对话框
2014/01/07 Javascript
js toFixed()方法的重写实现精度的统一
2014/03/06 Javascript
Javascript动态引用CSS文件的2种方法介绍
2014/06/06 Javascript
浅谈js script标签中的预解析
2016/12/30 Javascript
jQuery实现可编辑表格并生成json结果(实例代码)
2017/07/19 jQuery
webpack+vue中使用别名路径引用静态图片地址
2017/11/20 Javascript
nodejs实现的简单web服务器功能示例
2018/03/15 NodeJs
JavaScript创建对象的常用方式总结
2018/08/10 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
2019/08/05 Javascript
对layui初始化列表的CheckBox属性详解
2019/09/13 Javascript
Vue实现渲染数据后控制滚动条位置(推荐)
2019/12/09 Javascript
前端使用crypto.js进行加密的函数代码
2020/08/16 Javascript
vue+springboot+element+vue-resource实现文件上传教程
2020/10/21 Javascript
利用Python实现Windows定时关机功能
2017/03/21 Python
解决在pycharm中显示额外的 figure 窗口问题
2019/01/15 Python
对python tkinter窗口弹出置顶的方法详解
2019/06/14 Python
Python实现清理微信僵尸粉功能示例【基于itchat模块】
2020/05/29 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
2020/06/05 Python
Python 如何创建一个线程池
2020/07/28 Python
python中子类与父类的关系基础知识点
2021/02/02 Python
分享30个新鲜的CSS3打造的精美绚丽效果(附演示下载)
2012/12/28 HTML / CSS
CSS3实现多重边框的方法总结
2016/05/31 HTML / CSS
香港钟表珠宝首饰商城:OneMallTime网摩间
2016/10/14 全球购物
C#软件工程师英语面试题
2015/06/07 面试题
会务接待方案
2014/02/27 职场文书
2014年征兵标语
2014/06/20 职场文书
学雷锋志愿者活动方案
2014/08/21 职场文书
考试保密承诺书
2014/08/30 职场文书
乱丢垃圾袋检讨书
2014/10/08 职场文书
2014年安全生产工作总结
2014/11/13 职场文书
个人合作协议范本
2015/08/06 职场文书
浅析Redis Sentinel 与 Redis Cluster
2021/06/24 Redis