2014-12-19 107 views
0

我已经在codeigniter中创建了分页,因为我总共有13条记录,并且我想要在每个页面中显示5条记录。当我在分页链接数2鼠标,它应该在URL传值2,并将其显示在未来5条记录,但我在URL获取而不是2Codeigniter分页没有在URL中传递正确的链接值

值5我的控制器代码:

public function activities($page_num = 1){ 
    $config =array(); 
    $config['base_url'] = base_url().'admin/skills/activities'; 
    $config['per_page'] = 5; 
    $config['total_rows'] = $this->skill_model->all_activities(0,'',''); // I will get the total count from my model 

    if(empty($page_num)) 
     $page_num = 1; 

    $limit_end = ($page_num-1) * $config['per_page']; //end limit 
    $limit_start = $config['per_page']; // start limit 
    $this->pagination->first_url = $config['base_url'].'/1'; 
    $this->pagination->initialize($config); 
    $data['activity_list'] = $this->skill_model->all_activities(1,$limit_start,$limit_end); 
} 

这是我的看法代码:

<?php echo '<div class="pagination" style="float:right;">'.$this->pagination->create_links().'</div>'; ?> 

我Model部分:

function all_activities($flag,$limit_start,$limit_end){ 
    $this->db->select('*'); 
    $this->db->from('skills_activities'); 
    //echo $limit_start." ".$limit_end; 
    if($flag == 1){ 
     $this->db->limit($limit_start, $limit_end); 
     $query = $this->db->get(); 
     return $query->result_array(); 
    } else { 
     $query = $this->db->get(); 
     return $query->num_rows(); 
    } 
} 

当我点击PAGI国家链接我得到以下网址:

http://192.168.1.97/projects/homecare/admin/skills/activities/5 

,但我应该得到:

http://192.168.1.97/projects/homecare/admin/skills/activities/2 

我不知道我这样做是错误的。 任何人都可以帮助我吗?

在此先感谢。

+0

$ limit_end =($ PAGE_NUM-1)* $配置[ 'per_page']; // $ limit_end =(1-1)* 5所以结果将会是0 – 2014-12-19 10:42:45

+0

@Rana:是的,第一次是0,所以我会得到限制为0,5 ..下一次page_num将是2,所以(2- 1)* 5 = 5,下5条记录的限制为5,5。 – malar 2014-12-19 10:45:13

+0

so $ this-> skill_model-> all_activities(1,$ limit_start,$ limit_end);将是$ this-> skill_model-> all_activities(1,5,0);将返回0结果 – 2014-12-19 10:49:37

回答

1
$config['use_page_numbers'] = true; 

这将在url中产生页码而不是记录号。默认情况下它是false。

所以你控制器看起来像这样

public function activities($page_num = 1) 
{ 
    $config =array(); 
    $config['base_url'] = base_url().'admin/skills/activities'; 
    $config['per_page'] = 5; 
    $config['use_page_numbers'] = true;//you missed this line 
    $config['total_rows'] = $this->skill_model->all_activities(0,'',''); // I will get the total count from my model 
    if(empty($page_num)) $page_num = 1; 
    $limit_end = ($page_num-1) * $config['per_page']; //end limit 
    $limit_start = $config['per_page']; // start limit 
    $this->pagination->first_url = $config['base_url'].'/1'; 
    $this->pagination->initialize($config); 
+0

我的配置文件中没有找到任何这样的$ config ['use_page_numbers']。 – malar 2014-12-19 11:27:18

+0

你错过了这个配置。只需在你的控制器上添加以下代码行$ config ['per_page'] = 5;' – 2014-12-19 11:28:49

+0

正确地查看我的代码..我给出了这个$ config ['per_page'] = 5; – malar 2014-12-19 11:31:32