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 面向对象 final类与final方法
May 05 PHP
PHP学习之正则表达式
Apr 17 PHP
JpGraph php柱状图使用介绍
Aug 23 PHP
Fedora下安装php Redis扩展笔记
Sep 03 PHP
php单例模式实现方法分析
Mar 14 PHP
用PHP代码在网页上生成图片
Jul 01 PHP
浅谈PHP中foreach/in_array的使用
Nov 02 PHP
PHP+Ajax验证码验证用户登录
Jul 20 PHP
PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】
Jan 13 PHP
PHP中ajax无刷新上传图片与图片下载功能
Feb 21 PHP
PHP7 mongoDB扩展使用的方法分享
May 02 PHP
PHP读取文件或采集时解决中文乱码
Mar 09 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
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
2013/04/26 PHP
php查找字符串出现次数的方法
2014/12/01 PHP
Nginx下配置codeigniter框架方法
2015/04/07 PHP
php实现根据IP地址获取其所在省市的方法
2015/04/30 PHP
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)
2011/09/28 Javascript
详细介绍jQuery.outerWidth() 函数具体用法
2015/07/20 Javascript
jquery基础知识第一讲之认识jquery
2016/03/17 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
2016/05/25 Javascript
js实现四舍五入完全保留两位小数的方法
2016/08/02 Javascript
JavaScript每天必学之基础知识
2016/09/17 Javascript
Dropify.js图片宽高自适应的方法
2017/11/27 Javascript
JavaScript设计模式之建造者模式实例教程
2018/07/02 Javascript
Angular5.0 子组件通过service传递值给父组件的方法
2018/07/13 Javascript
ES6基础之解构赋值(destructuring assignment)
2019/02/21 Javascript
对Layer UI 模块化的用法详解
2019/09/26 Javascript
[05:15]DOTA2英雄梦之声_第16期_灰烬之灵
2014/06/21 DOTA
用ReactJS和Python的Flask框架编写留言板的代码示例
2015/12/19 Python
详解Python中的__getitem__方法与slice对象的切片操作
2016/06/27 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
2019/06/21 Python
在Django的View中使用asyncio的方法
2019/07/12 Python
python匿名函数lambda原理及实例解析
2020/02/07 Python
Python实现CAN报文转换工具教程
2020/05/05 Python
处理HTML5新标签的浏览器兼容版问题
2017/03/13 HTML / CSS
估算杭州有多少软件工程师
2015/08/11 面试题
留学推荐信怎么写
2014/01/25 职场文书
医院义诊活动总结
2014/07/04 职场文书
财务工作失职检讨书
2014/11/21 职场文书
2015年学校关工委工作总结
2015/04/03 职场文书
幼儿园重阳节活动总结
2015/05/05 职场文书
2015年安全保卫工作总结
2015/05/14 职场文书
2019年自助餐厅创业计划书模板
2019/08/22 职场文书
Python爬虫基础之初次使用scrapy爬虫实例
2021/06/26 Python
sql通过日期判断年龄函数的示例代码
2021/07/16 SQL Server
Win11运行育碧游戏总是崩溃怎么办 win11玩育碧游戏出现性能崩溃的解决办法
2022/04/06 数码科技
BCL经典机 SONY ICF-5900W电路分析
2022/04/24 无线电