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