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获得当前的脚本网址
Dec 10 PHP
PHP MYSQL乱码问题,使用SET NAMES utf8校正
Nov 30 PHP
PHP5与MySQL数据库操作常用代码 收集
Mar 21 PHP
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
Jul 03 PHP
php 搜索框提示(自动完成)实例代码
Feb 05 PHP
解析PHP自带的进位制之间的转换函数
Jun 08 PHP
简单谈谈PHP中strlen 函数
Feb 27 PHP
Zend Framework实现自定义过滤器的方法
Dec 09 PHP
PHP读取Excel类文件
May 15 PHP
php 删除指定文件夹的实例讲解
Jul 25 PHP
PHP实现递归的三种方法
Jul 04 PHP
PHP基本语法
Mar 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
SONY SRF-M100的电路分析
2021/03/02 无线电
利用浏览器的Javascript控制台调试PHP程序
2014/01/08 PHP
PHP中substr_count()函数获取子字符串出现次数的方法
2016/01/07 PHP
thinkPHP基于ajax实现的菜单与分页示例
2016/07/12 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
2016/12/12 PHP
PHP SFTP实现上传下载功能
2017/07/26 PHP
很全的显示阴历(农历)日期的js代码
2009/01/01 Javascript
自写简单JS判断是否已经弹出页面
2010/10/20 Javascript
JQuery+Ajax无刷新分页的实例代码
2014/02/08 Javascript
javascript实现锁定网页、密码解锁效果(类似系统屏幕保护效果)
2014/08/15 Javascript
jquery实现html页面 div 假分页有原理有代码
2014/09/06 Javascript
jQuery功能函数详解
2015/02/01 Javascript
js实现分割上传大文件
2016/03/09 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
微信小程序返回多级页面的实现方法
2017/10/27 Javascript
浅析JavaScript中的特殊数据类型
2017/12/15 Javascript
JavaScript实现轮播图效果
2020/10/30 Javascript
python网络编程学习笔记(三):socket网络服务器
2014/06/09 Python
Python对象的深拷贝和浅拷贝详解
2014/08/25 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
python模块smtplib学习
2018/05/22 Python
使用python批量读取word文档并整理关键信息到excel表格的实例
2018/11/07 Python
Python实现的合并两个有序数组算法示例
2019/03/04 Python
python面向对象 反射原理解析
2019/08/12 Python
Pytorch: 自定义网络层实例
2020/01/07 Python
pytorch之Resize()函数具体使用详解
2020/02/27 Python
结合 CSS3 transition transform 实现简单的跑马灯效果的示例
2018/02/07 HTML / CSS
澳大利亚连衣裙和女装在线:Esther
2017/11/11 全球购物
美国最值得信赖的宠物药房:Allivet
2019/03/23 全球购物
2019年c语言经典面试题目
2016/08/17 面试题
办公室内勤岗位职责范本
2013/12/09 职场文书
励志演讲稿大全
2014/08/21 职场文书
购房协议书范本
2014/10/02 职场文书
同学会邀请函模板
2015/01/30 职场文书
2015七夕情人节宣传语
2015/07/14 职场文书
高中运动会前导词
2015/07/20 职场文书