php实现多条件查找分页,PHP 实现CodeIgniter分页实例及多条件查询解决方案

这篇文章主要介绍了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();

设置分页样式

这里采用的是bootstrap的样式

$config['first_link'] = "<

$config['prev_link'] = "

$config['next_link'] = ">";//下一页

$config['last_link'] = ">>";//尾页

$config['full_tag_open'] = '

  • ';

$config['full_tag_close'] = '

';

$config['first_tag_open'] = '

';//第一个链接的起始标签。

$config['first_tag_close'] = '

';//第一个链接的结束标签。

$config['next_tag_open'] = '

';//下一页链接的起始标签。

$config['next_tag_close'] = '

';//下一页链接的结束标签。

$config['prev_tag_open'] = '

';//上一页链接的起始标签。

$config['prev_tag_close'] = '

';//上一页链接的结束标签。

$config['cur_tag_open'] = '

';

$config['cur_tag_close'] = '

';//当前页链接的结束标签。

$config['num_tag_open'] = '

';//数字链接的起始标签。

$config['num_tag_close'] = '

';//数字链接的结束标签。

相关推荐:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值