| 제목 | CI 페이지네이션 오류.. 해결방법좀알려주세요 | ||
|---|---|---|---|
| 글쓴이 | 박세 | 작성시각 | 2013/11/20 10:19:41 | 
| 
                         | 
                |||
| 
                         한페이지에 표시할 게시물은 잘나오지만 페이지 링크를 보면 1 2 3 > 이런식으로 계속 고정되어있습니다. 2로 눌러서 이동하게되면 페이지는 바뀌지만 페이지 링크는 계속 1로 되어있습니다. 그리고 게시물수가 50개라서 1 2 3 4 5 > 이렇게 나와야하는데 1 2 3 > 계속 고정되어있네요.. 소스 한번 올려봅니다.. 컨트롤부분 ----- 
 public function lists(){
  //페이지네이션 라이브러리 로딩 추가
  $this->load->library('pagination');
  //페이지네이션 설정
  $config['base_url']='http://board.globalweb-test.com/index.php/main/lists/';
    $config['total_rows']=$this->todo_m->get_list($this->uri->segment(3),'count'); //게시물의 전체 개수3
  $config['per_page']=5;//한 페이지에 표시할 게시물 수
  $config['uri_segment']=5;//페이지 번호가 위치한 세그먼트
  //페이지네이션 초기화
  $this->pagination->initialize($config);
  //페이징 링크를 생성하여 view에서 사용할 변수에 할당
  $data['pagenav']=$this->pagination->create_links();
  //게시물 목록을 불러오기 위한 oiffset,limit값 가져오기q
   $page=$this->uri->segment(3,1);
  if($page>1){
   $start=(($page/$config['per_page'])) * $config['per_page'];
  }else{
   $start=($page-1)*$config['per_page'];
  }
  $limit=$config['per_page'];
  $data['list']=$this->todo_m->get_list($this->uri->segment(3),'',$start,$limit);
  $this->load->view('/list_v',$data);
}
모델 부분-----
 function get_list($table='tboard',$type='',$offset='',$limit=''){
  $limit_query='';
  
  if($limit !='' OR $offset !=''){
   $limit_query='LIMIT '.$offset.','.$limit;
     
  }
  
  $sql="select * from tboard order by board_num DESC ".$limit_query; 
  $query=$this->db->query($sql);
  $result;
  if($type == 'count'){
   $result = $query->num_rows();
   //$this->db->count_all($table);
   
   
  }else{
   $result=$query->result();
  }
  return $result;
}
}
뷰 부분 --- <?php echo $pagenav;?>  | 
                |||
| 다음글 | [해결] http://주소/index.php/welco... (4) | ||
| 이전글 | $_POST값을 이용하는 메써드를 호출할려고 합니다. (1) | ||
| 
                             
                                헛발이
                                /
                                2013/11/20 11:03:50 /
                                추천
                                0
                             
                             | 
                    
| 
                             
                                박세
                                /
                                2013/11/20 11:09:59 /
                                추천
                                0
                             
                            
                                 음... 그쪽부분은 제가 디버깅해보았는데 
                        문제없이 데이터값 들어오고 정상이였습니다...  | 
                    
| 
                             
                                헛발이
                                /
                                2013/11/20 11:12:02 /
                                추천
                                0
                             
                            
                                total_rows 값도 정확하게 전체데이터값이 들어 오나요? 
                         | 
                    
| 
                             
                                박세
                                /
                                2013/11/20 11:14:52 /
                                추천
                                0
                             
                            
                                 네... 방금 확인해봤는데 토탈도 정확하게 나옵니다... 
                        하.. 미치겟네요  | 
                    
| 
                             
                                헛발이
                                /
                                2013/11/20 11:22:14 /
                                추천
                                0
                             
                            
                                제가 사용중인 소스의 일 부분을 발취 해 봅니다..정답은 아니지만.. 
                        소스가 좀 보기 어려운거 같아서 올려 봅니다.. 
$data['page'] = 'URI에서 페이지번호를 찾아오고..'
$data['total'] = $this->test_m->getAll();
$config = array(
    'display_pages' => FALSE,
    'base_url' => '/test/lists/page/',
    'total_rows' => $data['total'],
    'per_page' => 20,
    'num_links' => 5,
);
$this->load->library('pagination');
$this->pagination->initialize($config);
$data['query'] = $this->test_m->getList($config['per_page'], $data['page']);
모델에서
function getAll()
{
$query = $this->db->get($this->test);
return $query->num_rows();
}
function getList($limit=0, $offset=0)
{
$this->db->limit($limit, $offset);
$query = $this->db->get($this->test);
return $query;
} | 
                    
| 
                             
                                박세
                                /
                                2013/11/20 11:36:34 /
                                추천
                                0
                             
                            
                                이렇게 도와주시니 감사합니다.. 
                        제가 아직 초보라서 .. 죄송하지만 컨트롤부분 좀 더 소스를 볼수있을까요...  | 
                    
| 
                             
                                헛발이
                                /
                                2013/11/20 11:38:35 /
                                추천
                                0
                             
                             | 
                    
| 
                             
                                수야디벨
                                /
                                2013/11/20 11:39:07 /
                                추천
                                0
                             
                            우선 페이지네이션 메뉴얼을 정독하시길 권해드립니다 . http://codeigniter-kr.org/user_guide_2.1.0/libraries/pagination.html 1. 1 2 3 4 5 > 이렇게 나와야 하는데 1 2 3 > 이렇게 나와요. 이 문제는 헛발이님이 올려주신 소스에 보면 num_links => 5, 이부분이 있죠? | 
                    
| 
                             
                                박세
                                /
                                2013/11/20 11:47:51 /
                                추천
                                0
                             
                            
                                 헛발이//수야디벨 두분다 정말 고맙습니다! 
                        수야디벨님 글읽고 수정을 해보니 되네요.. 차근차근 원리부터 알아가도록하겠습니다! 감사합니다  | 
                    
윗소스는 좀 보기 어려워서 어디 잘못인지는 직접 테스트 해보지 않으면 모르겠지만..
$offset , $limit는 본인이 직접 계산해야 하는건 아니고..
per_page과 페이지번호로 데이터를 불러 오면 될듯 싶은데요...