PHP CodeIgniter分页实例及多条件查询解决方案(推荐)

最近在用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分页实例及多条件查询解决方案,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的,在此也非常感谢大家对脚本之家网站的支持!

时间: 2024-10-12 07:31:06

PHP CodeIgniter分页实例及多条件查询解决方案(推荐)的相关文章

CodeIgniter分页类pagination使用方法示例_php实例

本文实例讲述了CodeIgniter分页类pagination使用方法.分享给大家供大家参考,具体如下: controller控制器(application/controller/page.php文件): public function index() { $this->load->model ( 'home_model' , '' , TRUE); $config= array(); $config['per_page'] = $this->per_page; //每页显示的数据数 $

c#多条件查询,怎么写语句请教各位c#多条件查询请教各位c#多条件查询

问题描述 c#多条件查询,怎么写语句请教各位c#多条件查询请教各位c#多条件查询 请教各位c#多条件查询,请教各位c#多条件查询请教各位c#多条件查询 解决方案 C#用到的多条件查询 解决方案二: 多条件无非就是拼接下sql,用and连接各个条件.

ThinkPHP5联合(关联)查询、多条件查询与聚合查询实例详解

本文实例讲述了ThinkPHP5联合(关联)查询.多条件查询与聚合查询.分享给大家供大家参考,具体如下: 一.联合(关联)查询 1. 项目表 DROP TABLE IF EXISTS `darling_project`; CREATE TABLE `darling_project` ( `project_id` int(32) NOT NULL AUTO_INCREMENT, `project_name` varchar(20) NOT NULL, `create_time` int(32) N

MVC 多条件查询,带分页的

问题描述 MVC 多条件查询,带分页的 这是绑定的代码,获取前台 Request.Form[""name""],后怎么增加查询条件 page = page == null ? 1 : page; rows = rows == null ? 1 : rows; List<TBL_M_SECURITY_STAFF> list = db.TBL_M_SECURITY_STAFF.OrderBy(a => a.Security_Staff_ID).Skip

RDIFramework.NET中多表关联查询的分页实例

RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,给用户和开发者最佳的.Net框架部署方案.该框架以SOA范式作为指导思想,作为异质系统整合与互操作性.分布式应用提供了可行的解决方案. 分页非常的常见,基本任何项目都会涉及到分页,这没什么好谈的,大多数我们分页对单表的分页比较多,对多表的分页我们可以通过视图来实现,当然还有其他的方式,在这儿,我以一个实例展示下使用我们的RDIFramework.NET来实现多表联合查询分页的实现,我以Web的形式展示,WinForm方

struts2.0-只用Struts2框架多条件查询分页显示dao接口该咋写

问题描述 只用Struts2框架多条件查询分页显示dao接口该咋写 只用struts2框架不用hibernate和spring,可以多条件查询并且分页显示,要求一进去界面就显示查询结果那样子,dao接口该怎么写呢,实现类怎么写.sql语句往哪放啊.大神,求解啊. 解决方案 那你用什么与数据库交互?jdbc? 解决方案二: 实体类里创建个list',然后遍历list,应该是用jdbc 解决方案三: 实体类里创建个list',然后遍历list,应该是用jdbc

javaweb-请问条件查询怎么让分页页数不会跳回第一页,留在本页面,很奇葩的需求,请做过的指教下,谢谢

问题描述 请问条件查询怎么让分页页数不会跳回第一页,留在本页面,很奇葩的需求,请做过的指教下,谢谢 请问条件查询怎么让分页页数不会跳回第一页,留在本页面,很奇葩的需求,请做过的指教下,谢谢 解决方案 查询的时候就不能一次都查出来,要设置pagesize,然后做一个分页控件传入你要转到的页数值,再到数据库 查询绑定 ,一般你要在数据库做一个存储过程来实现 解决方案二: 记住当前页码就行啊.我们也是这么做的. 检索的生活把当前的检索条件和页码记住.

asp.net-AspNetPager分页控件在同一页面中按条件查询的数据分页的连续问题

问题描述 AspNetPager分页控件在同一页面中按条件查询的数据分页的连续问题 AspNetPager分页控件在同一个页面中多次修改SQL查询语句后的问题,如何在PageChanged事件中取得最新一次查询的SQL字符串值. 我需要在一个页面中根据搜索条件,多次修改SQL查询语句,可是分页控件的BindData(string sql)方法, 在PageChanged事件中引用的private string sql变量却总是首次加载页面时的值,点击分页后就变回了 原来的查询结果.如何使用Asp

求一份Struts2+Spring+mybatis整合的增删改查及分页和多条件查询的源代码

问题描述 求一份Struts2+Spring+mybatis整合的增删改查及分页和多条件查询的源代码 小白求一份Struts2+Spring+mybatis整合的增删改查及分页和多条件查询的源代码,用jQuery实现jsp页面 解决方案 SpringMVC+Spring+mybatis是否需要呢?笔者之前写了一些相关的文章,也有源代码,你可以参考下:http://blog.csdn.net/evankaka/article/details/49452201http://blog.csdn.net