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学习笔记 面向对象中[接口]与[多态性]的应用
Jun 16 PHP
谨慎使用PHP的引用原因分析
Sep 06 PHP
php简单计算页面加载时间的方法
Jun 19 PHP
Yii使用Captcha验证码的方法
Dec 28 PHP
Yii视图CGridView列表用法实例分析
Jul 12 PHP
深入浅出讲解:php的socket通信原理
Dec 03 PHP
PHP回调函数与匿名函数实例详解
Aug 16 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
Mar 06 PHP
Yii2框架控制器、路由、Url生成操作示例
May 27 PHP
解决laravel资源加载路径设置的问题
Oct 14 PHP
PHP执行系统命令函数实例讲解
Mar 03 PHP
php 原生分页
Apr 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
重量级动漫纷纷停播!唯独OVERLORD第四季正在英魂之刃继续更新
2020/05/06 日漫
一个连接两个不同MYSQL数据库的PHP程序
2006/10/09 PHP
PHP如何通过传引用的思想实现无限分类(代码简单)
2015/10/13 PHP
Twig模板引擎用法入门教程
2016/01/20 PHP
redis+php实现微博(二)发布与关注功能详解
2019/09/23 PHP
JAVASCRIPT IE 与 FF中兼容问题小结
2009/02/18 Javascript
向大师们学习Javascript(视频与PPT)
2009/12/27 Javascript
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
2010/04/29 Javascript
基于bootstrap3和jquery的分页插件
2015/07/31 Javascript
有关Promises异步问题详解
2015/11/13 Javascript
深入剖析JavaScript中的函数currying柯里化
2016/04/29 Javascript
jQuery Easyui Datagrid实现单行的上移下移及保存移动的结果
2016/08/15 Javascript
原生js实现下拉框功能(支持键盘事件)
2017/01/13 Javascript
ionic实现下拉刷新载入数据功能
2017/05/11 Javascript
nodejs+websocket实时聊天系统改进版
2017/05/18 NodeJs
Ionic3 UI组件之Gallery Modal详解
2017/06/07 Javascript
vue绑定设置属性的多种方式(5)
2017/08/16 Javascript
easyui下拉框动态级联加载的示例代码
2017/11/29 Javascript
element ui 对话框el-dialog关闭事件详解
2018/02/26 Javascript
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
2019/04/20 Javascript
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
2019/05/13 Javascript
[08:44]DOTA2发布会群星聚首 我们都是刀塔人
2014/03/21 DOTA
python取代netcat过程分析
2018/02/10 Python
配置 Pycharm 默认 Test runner 的图文教程
2018/11/30 Python
正则给header的冒号两边参数添加单引号(Python请求用)
2019/08/09 Python
css3气泡 css3关键帧动画创建的动态通知气泡
2013/02/26 HTML / CSS
Linux中如何用命令创建目录
2015/01/12 面试题
化学专业毕业生自荐信
2013/11/15 职场文书
报告会主持词
2014/04/02 职场文书
涉及车辆房产分割的离婚协议书范文
2014/10/12 职场文书
婚礼庆典答谢词
2015/01/20 职场文书
索赔员岗位职责
2015/02/15 职场文书
2015暑期社会实践调查报告
2015/07/14 职场文书
怎样写好演讲稿题目?
2019/08/21 职场文书
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP
python数字图像处理:图像的绘制
2022/06/28 Python