在Codeigniter分页中设置当前页面

时间:2017-05-02 11:25:55

标签: php codeigniter twitter-bootstrap-3

以下是我的代码,我不知道为什么它始终将第一页保留为当前页面。这就是为什么NEXT链接也无法正常工作的原因。 我也试过$config['uri_segment'] = 1;但是没有工作。 问题在哪里?

$data['mukkadam_list'] = $this->get_mukkadam();
$data['from']      = $from;
$data['to']        = $to;
$data['mukkadam']  = $mukkadam;
$url = base_url('Report/teee/'.$from.'/'.$to.'/'.$mukkadam);
$config['base_url']   = $url;
$config['per_page']   = 50;
// Reports is model. 
$config['total_rows'] = $this->Reports->counter($data['from'],$data['to'],$data['mukkadam']);
$config['num_links'] = $config['total_rows']/50;

$this->load->library('pagination');
$this->pagination->initialize($config);
谢谢你。 :)

3 个答案:

答案 0 :(得分:3)

每当你要在Codeigniter中实现分页时,你需要记住两件事:

第一件事与页面生成相关的配置实际上是:

    // Loads pagination library
    $this->load->library('pagination');

    // @params $url = your controller + method path
    $config['base_url'] = base_url() . $url;

    // @params $totalRows = Total  result found in query
    $config['total_rows'] = $totalRows;

    // @params $perPage = In your case it is 50
    $config['per_page'] = $perPage;

    // @params $segment = This is what you are missing in your code. Segment is the factor from where system reads which page records need to be shown
    $config['uri_segment'] = $segment;
    $this->pagination->initialize($config);

第二件事与设计部件相关的分页配置:

$config['full_tag_open'] = '<ul class="pagination  pagination-sm m-t-none m-b-none">';
$config['full_tag_close'] = '</ul>';
$config['prev_link'] = '<i class="fa fa-chevron-left"></i>';
$config['prev_tag_open'] = '<li>';
$config['prev_tag_close'] = '</li>';
$config['next_link'] = '<i class="fa fa-chevron-right"></i>';
$config['next_tag_open'] = '<li>';
$config['next_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li class="active"><a href="#">';
$config['cur_tag_close'] = '</a></li>';
$config['num_tag_open'] = '<li>';
$config['num_tag_close'] = '</li>';

$config['first_tag_open'] = '<li>';
$config['first_tag_close'] = '</li>';
$config['last_tag_open'] = '<li>';
$config['last_tag_close'] = '</li>';

$config['first_link'] = '<i class="fa fa-chevron-left"></i> <i class="fa fa-chevron-left"></i>';
$config['last_link'] = '<i class="fa fa-chevron-right"></i><i class="fa fa-chevron-right"></i>';
$this->pagination->create_links();

这是我在项目中使用的正在运行的脚本。工作正常。您需要检查初始化期间传递的 uri_segment

如果您遇到任何问题,请告诉我。

答案 1 :(得分:2)

试试这个 -

    $config = array();
    $config["base_url"] = base_url() . "index.php/controller/methods";
    $config["total_rows"] = $this->db->count_all("db_table_name");
    $config["per_page"] = 20;
    $config["uri_segment"] = 3;
    $this->load->library("pagination");
    $this->pagination->initialize($config);

    $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
    $data["results"] = $this->db->limit($config["per_page"],$page)->get("db_table_name")->result();
    $data["links"] = $this->pagination->create_links();

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

view_page.php -

<table class="table-bordered">
<?php foreach($results as $v){?>
<tr>
    <td><?php echo $v->col1; ?></td>
    <td><?php echo $v->col2; ?></td>
</tr>
<?php } ?>
</table>
<?php print_r($links); ?>

答案 2 :(得分:1)

// Select query to count all possible records, and assing it to here
//$count = 

//product pagination
$config['base_url'] = base_url() . 'index.php/report/teee/';
$config['total_rows'] = $count;
$config['per_page'] = 50;
$config['uri_segment'] = 3;
$limit = $config['per_page'];


// Bootstrap Stylings
$config['full_tag_open'] = '<ul class="pagination">';
$config['full_tag_close'] = '</ul>';
$config['first_link'] = false;
$config['last_link'] = false;
$config['first_tag_open'] = '<li>';
$config['first_tag_close'] = '</li>';
$config['prev_link'] = '&laquo';
$config['prev_tag_open'] = '<li class="prev">';
$config['prev_tag_close'] = '</li>';
$config['next_link'] = '&raquo';
$config['next_tag_open'] = '<li>';
$config['next_tag_close'] = '</li>';
$config['last_tag_open'] = '<li>';
$config['last_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li class="active"><a href="#">';
$config['cur_tag_close'] = '</a></li>';
$config['num_tag_open'] = '<li>';
$config['num_tag_close'] = '</li>';

$this->pagination->initialize($config);

$page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;

$data['links'] = $this->pagination->create_links();

$data['dataSource'] = $this->Sample_Model->select_query_for_get_data($limit,$page);