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下使用SMTP发邮件的代码
Jan 10 PHP
php完全过滤HTML,JS,CSS等标签
Jan 16 PHP
在MongoDB中模拟Auto Increment的php代码
Mar 06 PHP
巧用php中的array_filter()函数去掉多维空值的代码分享
Sep 07 PHP
php中使用preg_match_all匹配文章中的图片
Feb 06 PHP
解析PHP正则提取或替换img标记属性
Jun 26 PHP
PHP中浮点数计算比较及取整不准确的解决方法
Jan 09 PHP
php二维数组合并及去重复的方法
Mar 04 PHP
WordPress用户登录框密码的隐藏与部分显示技巧
Dec 31 PHP
PHP简单实现二维数组的矩阵转置操作示例
Nov 24 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
Aug 21 PHP
Laravel5框架自定义错误页面配置操作示例
Apr 17 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
收音机鉴频器对声音的影响和频偏分析
2021/03/02 无线电
php目录操作函数之获取目录与文件的类型
2010/12/29 PHP
PHP自定session保存路径及删除、注销与写入的方法
2014/11/18 PHP
symfony表单与页面实现技巧
2015/01/26 PHP
php之header的不同用法总结(实例讲解)
2017/11/28 PHP
javascript对数组的常用操作代码 数组方法总汇
2011/01/27 Javascript
Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
2014/02/12 Javascript
jquery正则表达式验证(手机号、身份证号、中文名称)
2015/12/31 Javascript
总结javascript中的六种迭代器
2016/08/16 Javascript
vue实现列表的添加点击
2016/12/29 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
javascript 初学教程及五子棋小程序的简单实现
2017/07/04 Javascript
解决微信二次分享不显示摘要和图片的问题
2017/08/18 Javascript
浅谈基于Vue.js的移动组件库cube-ui
2017/12/20 Javascript
详解Vue2.5+迁移至Typescript指南
2019/08/01 Javascript
vue 解决无法对未定义的值,空值或基元值设置反应属性报错问题
2020/07/31 Javascript
Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现
2020/09/04 Javascript
js+css3实现简单时钟特效
2020/09/13 Javascript
原生JavaScript实现幻灯片效果
2021/02/19 Javascript
[02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
2014/05/21 DOTA
Python将多份excel表格整理成一份表格
2018/01/03 Python
python 2.7 检测一个网页是否能正常访问的方法
2018/12/26 Python
用Python将Excel数据导入到SQL Server的例子
2019/08/24 Python
如何使用Python抓取网页tag操作
2020/02/14 Python
python导入库的具体方法
2020/06/18 Python
python 装饰器重要在哪
2021/02/14 Python
英国领先的新鲜松露和最好的松露产品供应商:TruffleHunter
2019/08/26 全球购物
简单说说tomcat的配置
2013/05/28 面试题
毕业生教师求职信
2013/10/20 职场文书
应届生服务员求职信
2013/10/31 职场文书
在教室放鞭炮的检讨书
2014/09/28 职场文书
公安派出所所长四风问题个人对照检查材料
2014/10/04 职场文书
五年级学生评语大全
2014/12/26 职场文书
工程项目经理岗位职责
2015/02/02 职场文书
2015年文秘个人工作总结
2015/10/14 职场文书
2016年第十四个公民道德宣传日活动总
2016/04/01 职场文书