用户
 找回密码
 入住 CI 中国社区
搜索
查看: 6865|回复: 11
收起左侧

[HELP] 分页问题,下一页,尾页链接效果不变会,首页也不出来

[复制链接]
发表于 2012-8-29 23:38:23 | 显示全部楼层 |阅读模式
本帖最后由 wl75144793 于 2012-9-1 21:42 编辑

问题是:初次访问页面,下一次无效。第一页页码是不可点击的,点页码2,3,4,尾页都有有翻页效果,但是页码1还是加粗不可点击状态,首页,上一页始终不出来。试过多种方法,实在是没办法了
这里控制器的代码
PHP复制代码
 
function arclist() {
        $this->load->model('blog');
        $offset = $this->uri->rsegment(3);
        if($offset==NULL){
            $offset=0;
        }  
        $num_all=$this->blog->blog_select_count();
        $this->load->library('pagination');
        $config['base_url'] = site_url().'/admin/arcticle/arclist/'; //admin是后台的目录
        $config['total_rows'] = $num_all;
        $config['per_page'] = '3';
        $config['uri_segment'] = 3;
        $config['first_link'] = '首页';
        $config['last_link']='尾页';
        $config['next_link'] = '下一页';
        $config['prev_link'] = '上一页';
        $config['cur_tag_open'] = '<b>';
        $config['cur_tag_close'] = '</b>';
        $this->pagination->initialize($config);
        $arr['page']=$this->pagination->create_links();
        $blog = $this->blog->blog_select_all($config['per_page'], $offset);
        $arr['blog'] = $blog;
        $this->load->view("admin/arcticle", $arr);
    }
 
复制代码

这里是模型的代码
PHP复制代码
 
//计算总数
 function blog_select_count() {
        $this->db->count_all_results();
        $query = $this->db->get('blog');
        return $query->num_rows();
    }
 
//分页模型
function blog_select_all($limit, $offset) {
        $this->db->limit($limit, $offset);
        $query = $this->db->get('blog');
        return $query->result_array();
    }
 
 
复制代码

经测试代码没有问题,在前台建一个控制器把代码复制过去,还是应用同一个模型翻页无问题;唯一的区别是代码应用在后控制器下面新建的一个admin目录下面,模板也是在view下面的一个admin目录,主要作用是区分前后台,不知道CI是不是这样多加了层目录,造成这个分页就不对了呢?结构如下图所示:






或是CI有没有分组模式,还是单一入口将前台与后台分开,比如像thinkphp那种模式?


发表于 2012-9-25 14:26:19 | 显示全部楼层
Mie灭 发表于 2012-9-25 11:18
我也有同样的问题……不知道lz解决了没有

$config['uri_segment'] = 3;
改成$config['uri_segment'] = 4;
它是分页用来自动测试哪段是代表分页的页数,
因为你添加了admin目录,理应第四段是代表分页的页数。
发表于 2014-11-5 08:30:48 | 显示全部楼层
snake 发表于 2012-9-25 14:26
$config['uri_segment'] = 3;
改成$config['uri_segment'] = 4;
它是分页用来自动测试哪段是代表分页的页 ...

谢谢你的建议,我的问题也是这样解决的。<
http://codeigniter.org.cn/forums ... amp;extra=#pid87736
>
发表于 2012-8-30 09:03:39 | 显示全部楼层
贴图出来更直观{:soso_e189:}
发表于 2012-8-30 09:49:13 | 显示全部楼层
$offset = $this->uri->rsegment(3);  多了红色的 r
发表于 2012-8-30 11:06:06 | 显示全部楼层
LS正解
发表于 2012-8-30 11:07:29 | 显示全部楼层
你也可以 把

      $offset = $this->uri->rsegment(3);
        if($offset==NULL){
            $offset=0;
        }

写成 $offset=$this->uri->segment(3,0);
功能相同 但是代码简洁很多
 楼主| 发表于 2012-9-1 18:41:47 | 显示全部楼层
jacknoodles 发表于 2012-8-30 11:07
你也可以 把

      $offset = $this->uri->rsegment(3);

问题不是出在这里,结果还是一样的
 楼主| 发表于 2012-9-1 18:42:39 | 显示全部楼层
qq494686707 发表于 2012-8-30 09:49
$offset = $this->uri->rsegment(3);  多了红色的 r

segment方法也试过,结果还是一样的,接收页码变量这里没问题的
发表于 2012-9-25 11:18:18 | 显示全部楼层
我也有同样的问题……不知道lz解决了没有
发表于 2012-9-25 14:12:03 | 显示全部楼层
$config['uri_segment'] = 3;
改成$config['uri_segment'] = 4;
它是分页用来自动测试哪段是代表分页的页数,
因为你添加了admin目录,理应第四段是代表分页的页数。

本版积分规则