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 相关文章推荐
基于文本的搜索
Oct 09 PHP
PHP中的string类型使用说明
Jul 27 PHP
PHP pathinfo()获得文件的路径、名称等信息说明
Sep 13 PHP
解析php中session的实现原理以及大网站应用应注意的问题
Jun 17 PHP
Zend studio文件注释模板设置方法
Sep 29 PHP
PHP正则表达式之捕获组与非捕获组
Nov 06 PHP
PHP生成制作验证码的简单实例
Jun 12 PHP
php自定义函数实现二维数组按指定key排序的方法
Sep 29 PHP
PHP面向对象之工作单元(实例讲解)
Jun 26 PHP
php curl上传、下载、https登陆实现代码
Jul 23 PHP
详解PHP中的8个魔术常量
Jul 06 PHP
PHP sdk实现在线打包代码示例
Dec 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
php设计模式 Facade(外观模式)
2011/06/26 PHP
php将日期格式转换成xx天前的格式
2015/04/16 PHP
PHP静态成员变量和非静态成员变量详解
2017/02/14 PHP
PHP自动生成缩略图函数的源码示例
2019/03/18 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
php 使用html5 XHR2实现上传文件与进度显示功能示例
2020/03/03 PHP
一个CSS+jQuery实现的放大缩小动画效果
2014/02/19 Javascript
PageSwitch插件实现100种不同图片切换效果
2015/07/28 Javascript
JavaScript面向对象编写购物车功能
2016/08/19 Javascript
微信小程序 HTTPS报错整理常见问题及解决方案
2016/12/14 Javascript
bootstrap PrintThis打印插件使用详解
2017/02/20 Javascript
如何更好的编写js async函数
2018/05/13 Javascript
使用element-ui的el-menu导航选中后刷新页面保持当前选中状态
2019/07/19 Javascript
详细教你微信公众号正文页SVG交互开发技巧
2019/07/25 Javascript
vue中监听返回键问题
2019/08/28 Javascript
jquery实现简单拖拽效果
2020/07/20 jQuery
VUE中鼠标滚轮使div左右滚动的方法详解
2020/12/14 Vue.js
Python开发实例分享bt种子爬虫程序和种子解析
2014/05/21 Python
python脚本实现数据导出excel格式的简单方法(推荐)
2016/12/30 Python
socket + select 完成伪并发操作的实例
2017/08/15 Python
对python GUI实现完美进度条的示例详解
2018/12/13 Python
对pandas写入读取h5文件的方法详解
2018/12/28 Python
python按行读取文件并找出其中指定字符串
2019/08/08 Python
Pytorch卷积层手动初始化权值的实例
2019/08/17 Python
python实现代码统计器
2019/09/19 Python
python装饰器代替set get方法实例
2019/12/19 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
linux centos 7.x 安装 python3.x 替换 python2.x的过程解析
2020/12/14 Python
CSS3 linear-gradient线性渐变生成加号和减号的方法
2017/11/21 HTML / CSS
阿联酋电子产品购物网站:Menakart
2017/09/15 全球购物
Unix如何添加新的用户
2014/08/20 面试题
营销主管自我评价怎么写
2013/09/19 职场文书
安全大检查实施方案
2014/02/22 职场文书
抢劫罪辩护词
2015/05/21 职场文书
法院执行局工作总结
2015/08/11 职场文书
Vue的列表之渲染,排序,过滤详解
2022/02/24 Vue.js