Codeigniter Pagination第3页链接被禁用

时间:2013-01-06 19:45:25

标签: codeigniter pagination

这是我的控制器:

class Comment extends CI_Controller {

function article() {
    $this->load->library('pagination');
    $this->load->model('comment_m');
            $id=$this->uri->segment(3);
    $config['base_url'] = 'http://localhost/ci/CodeIgniter_2.1.3/index.php/comment/article/'.$id;
    $config['total_rows'] = $this->db->get('comment_article')->num_rows();
            $config['per_page'] = 5;
    $config['num_links'] = 5;
    $config['full_tag_open'] = '<div id="pagination">';
    $config['full_tag_close'] = '</div>';
    $this->pagination->initialize($config);
            echo $this->uri->segment(4);
            $data['c_review'] = $this->comment_m->getarticle($id, $config['per_page'], $this->uri->segment(4));

            $this->load->view('comment_v', $data);
}
}

这是我的模特:

class Comment_m extends CI_Model{

function getarticle($id,$limit,$start) {
    $this->db->select('name, content');
    $this->db->from('comment_article');
            $this->db->where('article_id', $id); 
            $this->db->limit($limit, $start);
    $q = $this->db->get();

    if($q->num_rows() > 0) {
        foreach ($q->result() as $c_review) {
            $data[] = $c_review;
        }
        return $data;
    }       

}
}

如果我的文章少于或等于10篇(仅限2页),则分页工作正常,但如果我有第三个分页链接,则第3个链接变得无法删除且不是锚标记。 我在我的另一页中使用了相同的分页,但这个分页工作正常,但是这个引起了这个问题。

以下是分页页面图片的链接。这里突出显示的页面是3,而活动页面仍然是1,因此第3页是不可靠的。

This is the link to the image

这是我的其他实现,我无法用这个分页实现,但这就是我想要的:这里当前页面是第1页,共有13个项目,每页有5个项目。

This is link to the desired implementation

1 个答案:

答案 0 :(得分:0)

以及你对total_rows有问题的观点,它给你从db中选择的行数而不是总计数,如果你使用任何where子句,只需更改它就更好地使用count_all或count_all_result

from
$config['total_rows'] = $this->db->get('comment_article')->num_rows();

to 
$config['total_rows'] = $this->db->get('comment_article')->count_all();

在您在其他服务器上部署项目时,还有一项更改可以帮助您

from
$config['base_url'] = 'http://localhost/ci/CodeIgniter_2.1.3/index.php/comment/article/'.$id;

to
$config['base_url'] = base_url('comment/article/'.$id); // it will automatically add default base_url

最重要的是你必须添加$ config ['uri_segment']你必须告诉哪个段是默认的页码是3

$config['uri_segment'] = 3;

了解CI网站上的分页文档