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 相关文章推荐
DOMXML函数笔记
Oct 09 PHP
PHP编程网上资源导航
Oct 09 PHP
PHP获取当前url的具体方法全面解析
Nov 26 PHP
使用swoole扩展php websocket示例
Feb 13 PHP
PHP中对于浮点型的数据需要用不同的方法解决
Mar 11 PHP
PHP图像处理类库MagickWand用法实例分析
May 21 PHP
PHP使用递归方式列出当前目录下所有文件的方法
Jun 02 PHP
php等比例缩放图片及剪切图片代码分享
Feb 13 PHP
PHP中调用C/C++制作的动态链接库的教程
Mar 10 PHP
PHP编写登录验证码功能 附调用方法
May 19 PHP
PHP实现适用于自定义的验证码类
Jun 15 PHP
PHP+JavaScript实现无刷新上传图片
Feb 21 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
基于curl数据采集之正则处理函数get_matches的使用
2013/04/28 PHP
Yii数据读取与跳转参数传递用法实例分析
2016/07/12 PHP
PJBlog插件 防刷新的在线播放器
2006/10/25 Javascript
刷新时清空文本框内容的js代码
2007/04/23 Javascript
利用NodeJS和PhantomJS抓取网站页面信息以及网站截图
2013/11/18 NodeJs
js上传图片及预览功能实例分析
2015/04/24 Javascript
javascript从作用域链谈闭包
2020/07/29 Javascript
JavaScript中localStorage对象存储方式实例分析
2017/01/12 Javascript
使用ionic在首页新闻中应用到的跑马灯效果的实现方法
2017/02/13 Javascript
微信小程序 获取session_key和openid的实例
2017/08/17 Javascript
ES6 javascript中class类的get与set用法实例分析
2017/10/30 Javascript
写一个移动端惯性滑动&amp;回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
vue axios请求拦截实例代码
2018/03/29 Javascript
《javascript少儿编程》location术语总结
2018/05/27 Javascript
Vue 实现拖动滑块验证功能(只有css+js没有后台验证步骤)
2018/08/24 Javascript
基于Webpack4和React hooks搭建项目的方法
2019/02/05 Javascript
微信小程序实现锚点功能
2019/11/20 Javascript
javascript设计模式之迭代器模式
2020/01/30 Javascript
nuxt.js添加环境变量,区分项目打包环境操作
2020/11/06 Javascript
python原始套接字编程示例分享
2014/02/21 Python
跟老齐学Python之类的细节
2014/10/13 Python
Python 读写文件和file对象的方法(推荐)
2016/09/12 Python
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
Python实现的三层BP神经网络算法示例
2018/02/07 Python
Python中numpy模块常见用法demo实例小结
2019/03/16 Python
Python文件读写w+和r+区别解析
2020/03/26 Python
Python实现中英文全文搜索的示例
2020/12/04 Python
施华洛世奇日本官网:SWAROVSKI日本
2018/05/04 全球购物
Currentbody美国/加拿大:美容仪专家
2020/03/09 全球购物
网吧最新创业计划书范文
2014/03/27 职场文书
运动会400米加油稿(8篇)
2014/09/22 职场文书
2015年加油站站长工作总结
2015/05/27 职场文书
2019公司管理制度
2019/04/19 职场文书
千万级用户系统SQL调优实战分享
2022/03/03 MySQL
使用Java去实现超市会员管理系统
2022/03/18 Java/Android
JS中forEach()、map()、every()、some()和filter()的用法
2022/05/11 Javascript