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
php 无限极分类
Mar 27 PHP
用PHP实现Ftp用户的在线管理
Feb 16 PHP
php判断用户是否手机访问代码
Jun 08 PHP
Zend Framework教程之MVC框架的Controller用法分析
Mar 07 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
Apr 26 PHP
Joomla语言翻译类Jtext用法分析
May 05 PHP
10个值得深思的PHP面试题
Nov 14 PHP
php 微信开发获取用户信息如何实现
Dec 13 PHP
PHP实现的文件上传类与用法详解
Jul 05 PHP
laravel框架语言包拓展实现方法分析
Nov 22 PHP
Laravel统一错误处理为JSON的方法介绍
Oct 18 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输出缓存ob系列函数详解
2014/03/11 PHP
PHP实现的mysql读写分离操作示例
2018/05/22 PHP
CheckBoxList多选样式jquery、C#获取选择项
2013/09/06 Javascript
jquery简单实现鼠标经过导航条改变背景图
2013/12/17 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
2013/12/19 Javascript
JS中类或对象的定义说明
2014/03/10 Javascript
jQuery学习总结之jQuery事件
2014/06/30 Javascript
JsRender for object语法简介
2014/10/31 Javascript
js+CSS实现模拟华丽的select控件下拉菜单效果
2015/09/01 Javascript
js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问
2015/09/14 Javascript
理解Javascript的call、apply
2015/12/16 Javascript
jQuery checkbox选中问题之prop与attr注意点分析
2016/11/15 Javascript
JavaScript 计算笛卡尔积实例详解
2016/12/02 Javascript
基于Node.js的WebSocket通信实现
2017/03/11 Javascript
解决VUEX兼容IE上的报错问题
2018/03/01 Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
2018/11/08 Javascript
node.JS事件机制与events事件模块的使用方法详解
2020/02/06 Javascript
[15:39]教你分分钟做大人:龙骑士
2014/10/30 DOTA
浅谈Python中的闭包
2015/07/08 Python
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
2017/08/23 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
2019/01/30 Python
10款最好的Python开发编辑器
2019/07/03 Python
在python 中split()使用多符号分割的例子
2019/07/15 Python
Python中list的交、并、差集获取方法示例
2019/08/01 Python
python 并发编程 非阻塞IO模型原理解析
2019/08/20 Python
Python for循环及基础用法详解
2019/11/08 Python
在Django下创建项目以及设置settings.py教程
2019/12/03 Python
Python实现投影法分割图像示例(二)
2020/01/17 Python
PyQt5 如何让界面和逻辑分离的方法
2020/03/24 Python
解决keras加入lambda层时shape的问题
2020/06/11 Python
境外导游求职信
2014/02/27 职场文书
融资合作协议书范本
2014/10/17 职场文书
2014年学习部工作总结
2014/11/12 职场文书
党员承诺书范文2015
2015/04/27 职场文书
详解Redis主从复制实践
2021/05/19 Redis
解决mysql的int型主键自增问题
2021/07/15 MySQL