CodeIgniter实现分页传递多个参数
2018-05-28
后端
CodeIgniter实现分页传递多个参数
CodeIgniter默认分页只带一个参数,即当前页码,通过:$this->uri->segment(3)来获取。当需要
传递多个参数的时候,就会出错,解决方法如下即下列项目实例:
$id = intval($this->url['id']);
$count = $this->db->where(array('type'=>1,'pid'=>0,'aid'=>$id))->get('test')->num_rows();
$this->load->library('pagination');
$config['use_page_numbers']= TRUE;
$config['base_url']= base_url("article/article_view/id/{$id}");// 传递多个参数
$config['total_rows']= $count;
$config['per_page']=15;
// 在分页外围添加一组标签
$config['full_tag_open']="";$config['full_tag_close']='
';
// 自定义起始连接名称
$config['first_link']='首页';
$config['prev_link']='上一页';
$config['next_link']='下一页';
$config['last_link']='末页';
$config['uri_segment']=5;
$page=$this->uri->segment(5);
if($page >0) $page = $page-1;
$this->pagination->initialize($config);
$n_result = $this->db
->select("id#nikename#content#add_time#concat(path,'-',id) as bpath")
->where(array('type'=>1,'pid'=>0,'aid'=>$id))
->order_by('bpath')
->get('comments',$config['per_page'],$page);
说明:
$config['uri_segment']=5;
是传递多个参数最重要的地方,即跳过“多个参数”(上面实例只添加了“id”一个参数),获取当前“page”页码。CI在获取到当前页码时,底部分页所指示的当前页码会是默认选中样式,这个需要通过
$page=$this->uri->segment(5);
if($page >0) $page = $page-1;
的控制来实现。