TIP게시판

제목 View에서 리스트와 썸네일을 출력하는 요령
글쓴이 홍구2 작성시각 2014/12/17 18:14:21
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 13010   RSS
지극히 개인적으로 사용하는 방법인데요, 다른 분들에게 도움이 될 수 있을까하여 글을 남깁니다.

먼저 상황을 설명드리자면, 일반적인 리스트가 있고, 더보기 혹은 페이징을 눌렀을 때 pjax로 추가적인 부분만 불러와서 붙이는 구성을 많이 사용합니다. pjax가 결국 ajax호출이니까.. 처음에는 전체를 출력하고 그 이후에는 ajax로 리스트 중 추가부분만 불러오는 셈이지요. 또한 일부 썸네일을 modal을 통해서 수정을 하거나 신규생성의 경우에도 ajax로 해당 썸네일만을 불러와야하는 경우도 많이 있습니다.

이런 경우에 저는 아래와 같이 구성합니다.
  • 페이지 전체를 관할하는 뷰(list_view.php)
  • 썸네일의 뷰(thumb_view.php)
그리고 각각의 썸네일에서는 아래와 같이 호출합니다.

#list_view.php
<div id="list">
    <?php $this->load->view('thumb_view', $rows); ?>
</div>

#thum_view.php
<?php foreach (get_defined_vars()['_ci_data']['_ci_vars'] as $key => $row): ?>
  <div class="thumb">
    <div class="subject">제목</div>
    <div class="datetime">날짜</div>
  </div>
<?php endforeach;?>

이렇게 구성을 하면 리스트에서 이용할 때에도 한 번만 불러오게되고, 수정이나 생성등에 대응하여 하나의 썸네일만 필요한 경우에도 요긴하게 사용할 수 있습니다. 

추가적으로 ajax에 대응하여 일부 thumb들만 반환할 때에도 controller에서 손쉽게 분리가 가능합니다.
ex)
#controller
if($this->input->is_ajax_request())
  $this->load->view('thumb_view', $results->rows);
else
  $this->load->view('list_view', $result);
 다음글 Codeigniter 2.1.4, php 5.6 에서 ... (3)
 이전글 transaction 버그가 있네요. (1)

댓글

홍구2 / 2014/12/17 18:16:06 / 추천 0
수정이나 생성에 대응하여 단일 썸네일만 출력할 때에는 아래와 같이 배열로 전달해주면 됩니다.
$this->load->view('thumb_view', [$row]);
한대승(불의회상) / 2014/12/26 17:33:19 / 추천 0
특정 html 코드를 뷰로 직접 출력하는것도 좋은 방법이네요.
조금 수정하여 테마 같은것도 집어 넣으면 좋을듯.. ^^