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 相关文章推荐
海河写的 Discuz论坛帖子调用js的php代码
Aug 23 PHP
php Notice: Undefined index 错误提示解决方法
Aug 29 PHP
PHP Directory 函数的详解
Mar 07 PHP
请离开include_once和require_once
Jul 18 PHP
php中apc缓存使用示例
Dec 25 PHP
php数组排序usort、uksort与sort函数用法
Nov 17 PHP
PHP的Laravel框架中使用消息队列queue及异步队列的方法
Mar 21 PHP
PHP实现的线索二叉树及二叉树遍历方法详解
Apr 25 PHP
PHP编写daemon process详解及实例代码
Sep 30 PHP
AES加解密在php接口请求过程中的应用示例
Oct 26 PHP
PHP实现删除多重数组对象属性并重新赋值的方法
Jun 07 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
Jul 31 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 cron中的批处理
2008/09/16 PHP
PHP生成压缩文件实例
2015/02/07 PHP
PHP常用的小程序代码段
2015/11/14 PHP
php封装好的人民币数值转中文大写类
2015/12/20 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
PDO::setAttribute讲解
2019/01/29 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
2019/10/16 PHP
js的逻辑运算符 ||
2010/05/31 Javascript
js跑马灯代码(自写)
2013/04/17 Javascript
JQuery异步加载无限下拉框级联功能实现示例
2014/02/19 Javascript
jQuery学习笔记之 Ajax操作篇(二) - 数据传递
2014/06/23 Javascript
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
微信WeixinJSBridge API使用实例
2015/05/25 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
全面理解JavaScript中的闭包
2016/05/12 Javascript
Bootstrap3.0建站教程(一)之bootstrap表单元素排版
2016/06/01 Javascript
jQuery实现验证码功能
2017/03/17 Javascript
js使用ajax传值给后台,后台返回字符串处理方法
2018/08/08 Javascript
详解在vue-cli中使用graphql即vue-apollo的用法
2018/09/08 Javascript
vue-test-utils初使用详解
2019/05/23 Javascript
[03:36]2015国际邀请赛第二日现场精彩集锦
2015/08/06 DOTA
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
Python使用线程来接收串口数据的示例
2019/07/02 Python
Python3 pywin32模块安装的详细步骤
2020/05/26 Python
解决redis与Python交互取出来的是bytes类型的问题
2020/07/16 Python
matplotlib 三维图表绘制方法简介
2020/09/20 Python
CSS3样式linear-gradient的使用实例
2017/01/16 HTML / CSS
html5的新增的标签和废除的标签简要概述
2013/02/20 HTML / CSS
购买大码女装:Lane Bryant
2016/09/07 全球购物
Raleigh兰令自行车美国官网:英国凤头牌自行车
2018/01/08 全球购物
企业法人授权委托书
2014/09/25 职场文书
县政府领导班子四风问题对照检查材料思想汇报
2014/09/26 职场文书
党的群众路线教育实践活动个人对照检查材料(公安)
2014/11/05 职场文书
成人成长感言如何写?
2019/08/16 职场文书
解决pytorch-gpu 安装失败的记录
2021/05/24 Python