2013-03-30 73 views
2

嗨,我是在CodeIgniter新的,我在paginatation一个问题,我用的分页类,这里是我的控制器:分页在CodeIgniter中不起作用?

public function user($page='user') 
     { 
      $this->load->helper('url'); 
      $this->load->library('pagination'); 
      if (! file_exists('application/views/admin/'.$page.'.php')) 
      { 
       // Whoops, we don't have a page for that! 
       show_404(); 
      } 
      //$data['user'] = $this->user->get_user($config["per_page"], $page); 
      //$config = array(); 
      $config["base_url"] = base_url().'index.php/admin/user/'; 
      $config["total_rows"] = $this->user->record_count(); 
      $config["per_page"] = 5; 
      $config["num_link"] = 3; 
      $config['uri_segment'] = '5'; 
      $config['full_tag_open']='<ul>'; 
      $config['full_tag_close']='</ul>'; 
      $config['prev_link'] = 'Prev'; 
      $config['prev_tag_open'] = '<li>'; 
      $config['prev_tag_close'] = '</li>'; 
      $config['next_link'] = 'Next'; 
      $config['next_tag_open'] = '<li>'; 
      $config['next_tag_close'] = '</li>'; 
      $config['cur_tag_open'] = '<li class="current1">'; 
      $config['cur_tag_close'] = '</li>'; 
      $config['num_tag_open'] = '<li>'; 
      $config['num_tag_close'] = '</li>'; 
      $this->pagination->initialize($config); 
      $offset = $this->uri->segment(5); 
      //$page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0 ; 
      //print_r($this->user->fetch_countries($config["per_page"],$this->uri->segment(3))); 
      $data['user'] = $this->user->fetch_countries($config["per_page"],$offset); 
      //$data['total_rows'] = $this->user->record_count($config["per_page"],$this->uri->segment(3)); 
      $data["links"] = $this->pagination->create_links(); 
      //print_r($data); 
      //die(); 
      $data['base'] = $this->config->item('base_url'); 
      $data['css'] = $this->config->item('css'); 
      $this->load->view('admin/header', $data); 
      $this->load->view('admin/'.$page,$data); 
      $this->load->view('admin/footer',$data); 
     } 

型号代码:

public function record_count() { 
     return $this->db->count_all("user"); 
    } 
    public function fetch_countries($limit, $start) { 
     $query = $this->db->get("user",$limit, $start); 
      return $query->result_array(); 

    } 

和视图代码:

<?php foreach ($user as $user_detail): ?> 
     <tr class="gray_line2"> 
      <td class="sname2"><?php echo $i ?></td> 
      <td class="sname2"><?php echo $user_detail['name'] ?></td> 
      <td class="sname2"><?php echo $user_detail['username'] ?></td> 
      <td class="sname2"><?php echo $user_detail['email'] ?></td> 
      <td class="sname2"><?php echo $user_detail['contact'] ?></td> 
      <td class="sname2"><?php echo $user_detail['dob'] ?></td> 
      <td><div class="action"> 
       <ul> 
        <li><a href="user_detail?id=<?php echo $user_detail['id'] ?>" class="link" title="Details"><img src="<?php echo base_url();?>images/detail.png" class="left"></a></li> 
        <li><a href="user_edit?id=<?php echo $user_detail['id'] ?>" class="link" title="Edit"><img src="<?php echo base_url();?>images/edit.png" class="left"></a></li> 
        <li><a href="user_delete?id=<?php echo $user_detail['id'] ?>" class="link" title="Delete"><img src="<?php echo base_url();?>images/cross.png" class="left"></a></li> 
       </ul> 
      </div></td> 
     </tr> 
     <?php 
     endforeach ?>  
    </table> 
</div> 
<div class="pagi"> 
<div class="pagination"> 
<?php echo $links; ?> 

Here is what i got

这是浏览器视图,只有一个页面显示,当我点击第二个链接时,出现404错误。我使用的路线为以下

$route['admin/(:num)/(:any)'] = 'admin/user/$1'; 
Or 
$route['admin/(:num)/(:any)/(:num)'] = 'admin/user/$1/$2/$3'; 

回答

5

一旦与

$config['uri_segment'] = 4; 

OR

变更确认这样

public function user(){ 
    //Your code 
} 
在控制器

的方法..

路线

$route['admin/user/(:any)'] = 'admin/user/$1'; 

编辑

通过Dilipvyas

$route['admin/:num'] = 'admin/user/$1'; 
+0

建议我这样做已经都本 –

+0

@Dilipvyas的:尝试编辑路线 – mrsrinivas

+0

尝试,但仍无法正常工作,任何人都可以帮我解决这个问题。 。 –