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之第四天
Oct 09 PHP
基于Zookeeper的使用详解
May 02 PHP
zend Framework中的Layout(模块化得布局)详解
Jun 28 PHP
PHP中的reflection反射机制测试例子
Aug 05 PHP
PHP数组排序之sort、asort与ksort用法实例
Sep 08 PHP
php实现比较全的数据库操作类
Jun 18 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
Mar 09 PHP
PHP购物车类Cart.class.php定义与用法示例
Jul 20 PHP
PHP去除字符串最后一个字符的三种方法实例
Mar 01 PHP
PHP实现的简单操作SQLite数据库类与用法示例
Jun 19 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
Jun 17 PHP
PHP命名空间用法实例分析
Sep 04 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查询域名状态whois的类
2006/11/25 PHP
PHP分页显示制作详细讲解
2008/11/19 PHP
shopex主机报错误请求解决方案(No such file or directory)
2011/12/27 PHP
php排序算法(冒泡排序,快速排序)
2012/10/09 PHP
解析php中var_dump,var_export,print_r三个函数的区别
2013/06/21 PHP
适用于初学者的简易PHP文件上传类
2015/10/29 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
2019/10/03 PHP
JQuery 将元素显示在屏幕的中央的代码
2010/02/27 Javascript
在Iframe中获取父窗口中表单的值(示例代码)
2013/11/22 Javascript
Javascript保存网页为图片借助于html2canvas库实现
2014/09/05 Javascript
基于jQuery实现音乐播放试听列表
2016/04/14 Javascript
深入理解Javascript中的作用域链和闭包
2017/04/25 Javascript
实现div内部滚动条滚动到底部和顶部的代码
2017/11/15 Javascript
Vue项目添加动态浏览器头部title的方法
2018/07/11 Javascript
浅析Vue.js 中的条件渲染指令
2018/11/19 Javascript
JS原型和原型链原理与用法实例详解
2020/02/05 Javascript
Python中使用中文的方法
2011/02/19 Python
Cpy和Python的效率对比
2015/03/20 Python
Python实现批量读取word中表格信息的方法
2015/07/30 Python
Python 使用requests模块发送GET和POST请求的实现代码
2016/09/21 Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
2017/05/08 Python
python变量赋值方法(可变与不可变)
2019/01/12 Python
英国著名的茶叶品牌:Whittard of Chelsea
2016/09/22 全球购物
JOSEPH官网:英国奢侈时尚品牌
2018/01/31 全球购物
N:Philanthropy官网:美国洛杉矶基础款服装
2020/06/09 全球购物
新员工入职感言
2014/02/01 职场文书
楼面部长岗位职责范本
2014/02/14 职场文书
班风学风建设方案
2014/05/06 职场文书
青春演讲稿范文
2014/05/08 职场文书
授权收款委托书
2014/09/23 职场文书
行政执法队伍作风整顿剖析材料
2014/10/11 职场文书
2014年作风建设工作总结
2014/10/29 职场文书
幼儿园教师岗位职责
2015/04/02 职场文书
班主任寄语2016
2015/12/04 职场文书
Python人工智能之混合高斯模型运动目标检测详解分析
2021/11/07 Python
python实现商品进销存管理系统
2022/05/30 Python