제목 | 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과 페이지번호로 데이터를 불러 오면 될듯 싶은데요...