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基础知识:类与对象(4) 范围解析操作符(::)
Dec 13 PHP
PHP设计模式之命令模式的深入解析
Jun 13 PHP
PHP中nowdoc和heredoc使用需要注意的一点
Mar 21 PHP
简单分析ucenter 会员同步登录通信原理
Aug 25 PHP
php跨站攻击实例分析
Oct 28 PHP
php支付宝接口用法分析
Jan 04 PHP
PHP中filter函数校验数据的方法详解
Jul 31 PHP
记录一次排查PHP脚本执行卡住的问题
Dec 27 PHP
PHP获取MySQL执行sql语句的查询时间方法
Aug 21 PHP
php进程(线程)通信基础之System V共享内存简单实例分析
Nov 09 PHP
php提高脚本性能的4个技巧
Aug 18 PHP
php框架知识点的整理和补充
Mar 01 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支持页面回退的两种方法[转]
2007/02/14 PHP
PHP远程采集图片详细教程
2014/07/01 PHP
PHP实现自动登入google play下载app report的方法
2014/09/23 PHP
PHP PDO fetch 模式各种参数的输出结果一览
2015/01/07 PHP
PHP获取一年有几周以及每周开始日期和结束日期
2015/08/06 PHP
ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法
2016/11/12 PHP
php 判断过去离现在几年的函数(实例代码)
2016/11/15 PHP
php5.x禁用eval的操作方法
2018/10/19 PHP
详解PHP变量传值赋值和引用赋值变量销毁
2019/03/23 PHP
简单三步,搞掂内存泄漏
2007/03/10 Javascript
javascript新手语法小结
2008/06/15 Javascript
JavaScript XML实现两级级联下拉列表
2008/11/10 Javascript
js 左右悬浮对联广告代码示例
2014/12/12 Javascript
jQuery实现鼠标划过修改样式的方法
2015/04/14 Javascript
封装属于自己的JS组件
2016/01/27 Javascript
jquery拖拽排序简单实现方法(效果增强版)
2016/02/16 Javascript
JS点击某个图标或按钮弹出文件选择框的实现代码
2016/09/27 Javascript
完美解决input[type=number]无法显示非数字字符的问题
2017/02/28 Javascript
浅谈JavaScript正则表达式-非捕获性分组
2017/03/08 Javascript
Vue中如何实现轮播图的示例代码
2017/07/27 Javascript
js字符串处理之绝妙的代码
2019/04/05 Javascript
JavaScript中十种一步拷贝数组的方法实例详解
2019/04/22 Javascript
python3.0 字典key排序
2008/12/24 Python
Python pickle类库介绍(对象序列化和反序列化)
2014/11/21 Python
Windows下Anaconda2安装NLTK教程
2018/09/19 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
基于django ManyToMany 使用的注意事项详解
2019/08/09 Python
pytorch实现onehot编码转为普通label标签
2020/01/02 Python
使用TFRecord存取多个数据案例
2020/02/17 Python
python如何停止递归
2020/09/09 Python
奥地利购买珠宝和手表网站:ELLA JUWELEN
2019/09/03 全球购物
纺织工程专业个人求职信范文
2014/01/27 职场文书
电子商务个人职业生涯规划范文
2014/02/12 职场文书
甜品蛋糕店创业计划书
2014/09/21 职场文书
2014年技术员工作总结
2014/11/18 职场文书
python之np.argmax()及对axis=0或者1的理解
2021/06/02 Python