제목 | 페이지네이션 관련 | ||
---|---|---|---|
글쓴이 | ci_chobo | 작성시각 | 2012/10/08 16:55:15 |
|
|||
[ A테이블의 글 ] [ 각종 버튼 목록 ] [ B테이블의 목록 ] 이런식으로 한 페이지내에 구성이 되어 있을 경우에, B테이블의 목록만 페이지네이션 적용할 수 있나요 ?? 페이지이동이되면 A페이지는 전체 페이지를 새로 고침하는게 아니라, B테이블의 목록만 다음으로 나오게 그게 가능한가요 ? 페이지네이션만으로 ?? |
|||
다음글 | 코드이그나이터에서 models 폴더에 파일은 수정이 안... (2) | ||
이전글 | 코드이그나이터 게시판 생성은 재동으로 되나요?&... (4) | ||
한대승(불의회상)
/
2012/10/08 18:03:05 /
추천
0
|
변종원(웅파)
/
2012/10/08 18:21:52 /
추천
0
ci 처음 써봤을 때 귀찮아서 iframe으로 구현했던 적이..... ㅋ
ajax로 구현은 할 수 있겠으나 많이 복잡하겠네요. |
지지고
/
2012/10/10 00:18:49 /
추천
0
테이블이란게... DB 테이블인지 table 태그인지 모르겠습니다.
음.. 각각에 영역을 div로 묶고.. 뷰로드할 때 $area 안에는 a, b 배열이 있고... 각 배열 안에는 공통적으로 subject - 걍 DB에서 클릭한 번호를 ajax 전송받아서 긁어진 반환물 pagination - pagenation 헬퍼가 호출된 클래스에 /page/숫자 식으로 세그먼트를 ajax로 넘겨준 값으로 만들어진 반환물 list - /page/숫자 에서 숫자를 모델에 넘겨서 그 숫자를 offset 으로 n개 제목만 긁어온 목록, 그걸 테이블 헬퍼로 가공한 결과물.. 위에 세 개의 가공물이 있음... 가공물은 초기에 0 값을 가지며 ajax로 해당 컨트롤러에 세그먼트 형식으로 숫자를 전달하면 그 값에 따라 db쿼리 결과물이 달라지며 따라서 페이지네이션, 내용물, 목록이 다 바뀌게 됨. 컨트롤 function show_AB ($num=null)... 헬퍼로드 - 페이지네이션, 테이블 if ( !this->input->post[ajax] ) .... 일반 요청 들어왔을 때 처리코드 전체 페이지를 반환.. $num=null 로 모델과 페이지네이션 처리, 결과는 1페이지, 0번부터 n개까지 목록 반환. 페이지네이션도 1페이지부터 시작하는 것으로 생경됨. $this->load->view('entire_page',$area); else( this->input->post[ajax] ) ..... post 로 넘어온 값에 ajax 값이 있을 경우 처리코드... 이건 전체 페이지를 넘겨주지 않고 바뀔 부분만 반환.. $num 은 페이지네이션 으로부터 뽑아낸 페이지에 시작 게시물번호. 모델에 이 값을 넘기고 시작번호부터 n개 만큼 쿼리한 결과물을 넘김. 그걸 table 헬퍼로 가공해서 목록을 만듬. $num 을 통해 자동으로 페이지 네이션이 생성. $this->load->view('sub_pag_list_show',$area); sub_pag_list_show 라는 뷰 내용. // 전체 영역을 묶기 <div id="show" class="area"> //A 테이블에서 읽어온 값을 뿌리는 영역 <div id="area_a" class="..."> .... 생략 ...... </div> //B 테이블에서 읽어온 값을 뿌리는 영역 <div id="area_b"> // 선택한 해당 글 본문 영역 <div id="subject area_b"> <?php echo $area[b][subject]; ?> <div > // 페이지네이션 영역 <div id="pagination area_b"> <?php echo $area[b][pagination]; ?> <div > // 목록영역 <div id="list area_b"> <?php echo $area[b][list]; ?> <div > <div > </div> AJAX 부분. ajax 에 pagination 부분 <a> 태그에 click 이벤트 연결. 펑션으로는 attr('href0 로 주소 뽑음. action 은 method post, 요청주소는 href 로 뽑은 값. 예) /index.php/show_AB/page/50 식으로 show_AB 컨트롤러에 50이라는 값을 넘김.. 컨트롤러는 '50' 값을 $num 변수로 받고 이 변수에 기반으로 목록값, 페이지네이션을 생성 후결과물 조각을 ajax에 반환... ajax 는 success: 이후에 펑션을 통해서 <div id="show" class="area">위 영역에 에 넘겨진 값를 통해 바뀐 페이지 목록, 페이지네이션 출력 결과물을 삽입 본문은 안바뀌고 ajax를 통해 페이지네이션 부분과 목록 부분만 바뀜... mvc 도 복잡한데 mvc 사이에 ajax가 깔짝데는 걸 이해하느라 어려움... v-a-ca (뷰-아약스-컨트롤러,모델 ) 식으로 1. 컨트롤러 안에 ajax 요청을 받아줄 메서드를 따로 만들던가.. 아니면 ajax 값에 따라 부문만 반환하는 메서드를 만듬 2. view에 컨트롤러로 부터 반환받는 뷰조각을 삽입할 구역을 설정... 3. ajax 가 view 에서 값을 가로채서 컨트롤러에 메서드에 전달, 또 반환받은 값을 뷰에 특정 영역에 삽입하도록 하면 됨. 적어놓고 보니까... 질문이 이게 아니었던 것 같네요... 뻘쭘.. |
ajax 머리 아프면 그냥 iframe 로 해결 하시는게 더 빠를지도.. ^^