| 제목 | jQuery를 이용한 ajax Pagination. | ||
|---|---|---|---|
| 글쓴이 | 들국화 | 작성시각 | 2013/12/10 14:26:48 |
|
|
|||
|
뒤져도 명확한게 없는거 같아 몇일 삽질한 내용 공유 합니다. 몇가지 방법들이 있었는데 이방법이 제 생각에는 심플 하네요. 아래 paging 라이브러리는 이전 사람이 약간수정해 놓은형태라서 조금 틀릴수 있는데.. 일반적인 페이징 처리하는 로직데로 하시면 됩니다. 핵심은 js영역.... php
$limit = 3;
$page_scale = 10;
$this->load->library('paging');
$this->paging->init($data['review_total'], $this->input->get_post('start'), $limit, $page_scale, 'start', 'new_paging', '/post/view_review_ajax/'.$isrl);
$comment_param['isrl'] = $isrl;
$comment_param['start'] = $this->input->get_post('start');
$comment_param['limit'] = $limit;
$data['review_list'] = $this->itemdata->get_item_review_ajax($comment_param);
$data['item_srl'] = $isrl;
$data['start'] = $this->input->get_post('start');
$data['review_paging'] = $this->paging->display();
$this->load->view('/parts/view_review_v', $data);
view_review_v.php
.
.
.
<?php if (!empty($review_paging)) { ?>
<div class="paging" id="review_ajax_paging">
<?php echo $review_paging;?>
</div>
<?php } ?>
item_review.js
$(function() {
applyPagination();
function applyPagination() {
$("div#review_ajax_paging a").on("click", function() {
var url = $(this).attr("href");
$.ajax({
type : "POST",
url : url,
beforeSend : function() {
$("#review_area").html("");
},
success : function(msg) {
$("#review_area").html(msg);
applyPagination();
}
});
return false;
});
}
});
ci프레임워크를 보며 왜 ajax형태로 paging을 만들어 주는 라이브러리가 없을까 했었는데...직접 구현하는 방법밖에 없네요. 이벤트를 캐치해서 사용하니 뭐 그리 나쁘지는 않네요. 일반적인 방법과 동일 하구요 변환 영역만 따로 만들어 pagination 클릭될때 a 태그 주소로 ajax실행해서 html을 뿌리는게 다이고요. 새로운 페이지를 읽어들였을때 click event를 잘 캐치하지 못하는 경우가 발생 하는데... 그래서 인지 recursive call 를 해 줍니다. |
|||
| 다음글 | [어리버리팁 01] database autoinit T... (2) | ||
| 이전글 | 유용하지만 잘 사용되지 않는 CI 상수들 (2) | ||
|
수야디벨
/
2013/12/11 00:16:43 /
추천
0
좋은 정보 감사합니다 .^^
|
|
차카다이
/
2014/05/12 11:24:57 /
추천
0
저는 이거 유투브에 외국 개발자가 구현한거 보고 구현한적 있는데..
필요하시면 검색해서 참고하시라고요 ㅋㅋ; |
|
한대승(불의회상)
/
2014/05/12 11:31:56 /
추천
0
좋은정보 감사합니다. ^^
이걸 보니 저도 정리해 봐야 겠습니다. |