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框架的性能
Jan 10 PHP
php 上传文件类型判断函数(避免上传漏洞 )
Jun 08 PHP
PHP文件读写操作之文件写入代码
Jan 13 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
Jan 14 PHP
PH P5.2至5.5、5.6的新增功能详解
Jul 14 PHP
Yii2中Restful API原理实例分析
Jul 25 PHP
PHP查询大量数据内存耗尽问题的解决方法
Oct 28 PHP
php实现产品加入购物车功能(1)
Jul 23 PHP
Mac系统完美安装PHP7详细教程
Jun 06 PHP
yii2的restful api路由实例详解
May 14 PHP
Yii Framework框架使用PHPExcel组件的方法示例
Jul 24 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
Jun 06 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生成html分页列表的代码
2007/03/18 PHP
smarty中js的调用方法示例
2014/10/27 PHP
Zend Framework使用Zend_Loader组件动态加载文件和类用法详解
2016/12/09 PHP
Gambit vs CL BO3 第三场 2.13
2021/03/10 DOTA
关于Javascript 的 prototype问题。
2007/01/03 Javascript
Javascript - HTML的request类
2007/01/09 Javascript
认识延迟时间为0的setTimeout
2008/05/16 Javascript
运用jquery实现table单双行不同显示并能单行选中
2009/07/25 Javascript
asp.net+jquery滚动滚动条加载数据的下拉控件
2010/06/25 Javascript
JavaScript高级程序设计 读书笔记之十一 内置对象Global
2012/03/07 Javascript
jQueryUI写一个调整分类的拖放效果实现代码
2012/05/10 Javascript
jQuery页面图片伴随滚动条逐渐显示的小例子
2013/03/21 Javascript
自定义的一个简单时尚js下拉选择框
2013/11/20 Javascript
javascript数组去重方法终极总结
2014/06/05 Javascript
原生javascript实现Tab选项卡切换功能
2015/01/12 Javascript
javascript模拟C#格式化字符串
2015/08/26 Javascript
vue.js将unix时间戳转换为自定义时间格式
2017/01/03 Javascript
简单实现jQuery手风琴效果
2017/08/18 jQuery
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
2018/10/30 Javascript
Vue.js构建你的第一个包并在NPM上发布的方法步骤
2019/05/01 Javascript
微信小程序实现图片选择并预览功能
2019/07/25 Javascript
vue封装swiper代码实例解析
2019/10/08 Javascript
Python中DJANGO简单测试实例
2015/05/11 Python
python3 模拟登录v2ex实例讲解
2017/07/13 Python
python 中的int()函数怎么用
2017/10/17 Python
Python网络编程使用select实现socket全双工异步通信功能示例
2018/04/09 Python
tensorflow: 查看 tensor详细数值方法
2018/06/13 Python
PyQt5 实现给窗口设置背景图片的方法
2019/06/13 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
2019/08/23 Python
Python编译成.so文件进行加密后调用的实现
2019/12/23 Python
基于canvas使用贝塞尔曲线平滑拟合折线段的方法
2018/01/10 HTML / CSS
Ann Taylor官方网站:美国最大的女性产品制造商之一
2016/09/14 全球购物
体现团队精神的口号
2014/06/06 职场文书
用Python提取PDF表格的方法
2021/04/11 Python
Go 内联优化让程序员爱不释手
2022/06/21 Golang