CI 묻고 답하기

제목 페이징처리 질문입니다~
글쓴이 ci공부 작성시각 2012/10/19 12:51:53
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 16411   RSS
 한페이지내에 2~3개이상의 페이징을 사용하고있습니다

<div>
첫번째 영역
첫번째 페이징
</div>
<div>
두번째 영역
두번째 페이징
</div>
<div>
세번쨰 영역
세번쨰 페이징
</div>

그런데 컨트롤러에서 페이징 처리를 하는부분에서 config안에 per_page값을 동일하게하면

첫번째 페이징은 제대로 나오는데 두번째 및 세번째 페이징표시가 되는부분이 제대로 표기가 되지 않더라구요..

per_page값만 겹치지않게 설정해주면 잘나오는데 말이죠....

뭐가 문제일까요 ㅠㅠㅠ

컨트롤러에서 페이징 처리하는 부분은

위에처럼 3가지로 나뉘어서 처리하고있습니다



소스입니다 볼드처리한 부분 봐주세요 ㅠ

$this->data['ads_total_rows'] = $this->auction->get_myAdsCount();
$this->data['ads_page']  = ($this->uri->segment(3) == 'ads') ? ($this->uri->segment(4) === FALSE) ? 0 : $this->uri->segment(4) : 0;
$this->data['ads_limit']  = 7;
$uri_segment  = ($this->uri->segment(3) == 'ads') ? 4 : 3;
$this->navi = array('base_url' =>'/mypage/buy_info/ads',
'total_rows'=>$this->data['ads_total_rows'],
'per_page'=>7, << 이부분
'uri_segment'=>$uri_segment,
'num_links'=>10,
'next_link'=>' <img src="'.IMG_URL.'common/next.gif" alt="다음 페이지 이동" class="ImgWork" />',
'prev_link'=>"<img src='".IMG_URL."common/prev.gif' alt='이전 페이지 이동' class='ImgWork' /> ",
);
$this->pagination->initialize($this->navi);
$this->data['ads_numbering'] = $this->data['ads_total_rows'] - $this->data['ads_page'];
$this->data['set_pagination_ads'] = $this->pagination->create_links();
 다음글 ci에서 쿼리문적을때 질문입니다 (3)
 이전글 [초보]다중DB백업 (8)

댓글

헛발이 / 2012/10/19 14:07:00 / 추천 0
이건 극히 개인적인 취향이나 주관적인 생각이긴 하지만요...
저는 저렇게 만드는 화면구성에 대해서 지향하지 않는 편입니다..

가능하면 하나의 콘트롤에서는 가능하면 하나의 기능만을 하는것이 옳다고 생각하고 있거든요..
하나의 콘트롤에서 모든 것을 다 하게 된다면 결국 우리가 항상 불평을 하고 있는
웹에 대한 장점을 살리지 못하고 억지로 웹에 어플리케이션 방식을 끼워 넣게 되는 꼴이거든요..

한 화면에 두가지 이상의 페이지가 필요하다는것은
위에는 10건 이상의 데이터를 페이지로 보다가 하나를 클릭하면
그 데이터에 대한 데이터 10건 이상을 보여주기 위함이 되는거죠...

위아래 모두 페이징을 한다는건 10건 이상 혹은 많은 데이터를 페이지로 넘겨 보는것이 되고..
데이터가 많다는건 나중에 검색기능도 추가 해야 한다는것이 되는데...

기능이 추가 될때마다 위아래의 기능이 서로 충돌되서 애먹게 될것이 예상되기 때문이죠...

그래서 저 같으면 화면구성을 가능하면 위의 리스트에서 클릭하면 새로운 윈도를 띄워 그 화면에서
단독으로 리스트 화면을 만들고 찾는것이 없다면 그냥 단순히 창을 닫아 버리면 될듯 싶고..

굳이 한 화면에서 처리를 원한다면 Ajax를 이용해서 리스트 부분만 별도로 처리를 하는것이 좋다고
생각이 됩니다만...

그저 저의 개인적인 생각일 뿐입니다...
이현석 / 2012/10/19 14:37:13 / 추천 0
초보라 조심스럽게 답변 달아봅니다.
각 페이지네이션 마다 다른 설정값을 갖도록 하려면
페이지네이션 링크를 생성할 때 마다 이니셜라이즈를 해줘야하는데
혹시 이니셜라이즈를 한 번만 하신건 아닌가 싶네요.
ci공부 / 2012/10/19 17:35:25 / 추천 0
 헛발이 // 저도 그러고 싶지만 사이트 구조가 쫌 그렇네요 ㅠㅠ

이현석 // 이니셜라이즈가 뭔지 여쭤봐도 될런지요 ㅠㅠ 초보라서...
헛발이 / 2012/10/19 18:10:30 / 추천 0
설정을 초기화 한다는 의미로...

$this->pagination->initialize($this->navi);

이걸 말씀하는거 같은데요...