| 제목 | 페이지네이션 질문이요 (페이징과 글내용을 한 페이지에..) | ||
|---|---|---|---|
| 글쓴이 | wkdwlaks | 작성시각 | 2016/02/03 18:59:27 | 
| 
                         | 
                |||
| 
                         코드이그나이터 완전 초보로 공부하고 있는 사람입니다. 
 controller에서 페이지네이션과 글내용을 보는 기능을 각각 구현하고, view에서 페이지네이션과 글내용을 함께 보여주려고 합니다. 페이지네이션이 포함된 글목록과 글내용 보여주는 페이지를 각각 만들면 문제가 없을 것 같다만, 한 페이지에 같이 보여주려니까 설정을 어떻게 해야할지 모르겠네요. 
 인터넷으로 찾다가 도저히 모르겠어서 결국 만들면서 배우는 코드이그나이터 프레임워크 책도 사서 봤는데, 책에 나온 페이지네이션 부분도 목록과 내용 페이지가 나눠져있는 방법이네요. 
 [ controller 부분 ] 
function pagination($id){
    $this->load->library('pagination');
    $config['total_rows'] = $this->Board_model->gets_count();
    $config['per_page'] = 5;
    $config['use_page_numbers'] = TRUE;
    $config['base_url'] = '/index.php/Board/show/'.$id.'/pagination';
    $this->pagination->initialize($config);
    $pagination = $this->pagination->create_links();
    $page = $this->uri->segment(5, 1);
    if($page > 1){
      $start = ($page/$config['per_page'])*$config['per_page'];
    }else{
      $start = ($page-1)*$config['per_page'];
    }
    $limit = $config['per_page'];
    $topics = $this->Board_model->gets($start,$limit);
    $this->load->view('topic_list',array('topics'=>$topics, 'pagination'=>$pagination));
  }
  function show($id){
    $this->load->view('head');
    $this->Board_model->count($id);         // 조회수
    $topic=$this->Board_model->get($id);
    $this->pagination($id);
    $this->load->view('topic_show',array('topic'=>$topic));
    $this->load->view('footer');
  }
[ model 부분 ] 
function gets_count(){
    return $this->db->query("SELECT * FROM test_table ORDER BY id DESC")->num_rows();
  }
  function gets($offset='',$limit=''){
    return $this->db->query("SELECT * FROM test_table ORDER BY id DESC LIMIT ".$offset.", ".$limit)->result();
  }
  function get($id){
    return $this->db->get_where('test_table',array('id'=>$id))->row();
  }
[ view 목록 부분 ] 
<div class="topic_list" align='right'>
  <table border='0' cellspacing='0' cellpadding='0' width='80%' style='TABLE-layout:fixed;'>
    <tr height='1px'><td style="background-color:lightgrey"></td></tr>
    <?php
      foreach($topics as $list){
    ?>
    <tr>
      <td width='90%' align="left" style="border-bottom:1px dotted lightgrey; font-size:10pt; text-overflow:ellipsis; overflow:hidden;">
        <a href="/index.php/Board/show/<?=$list->id?>">  <nobr><?=$list->id?><?=$list->board_title?></nobr>  </a></td>
    </tr>
    <?php
      }
    ?>
    <tr>
      <td align=center><?=$pagination;?></td>
    </tr>
  </table>
  <br><br>
</div>
 [ view 내용 부분 ] 
<table border='0' cellspacing='0' cellpadding='0' width='100%'>
  <tr height="1" bgcolor="lightgrey"><td colspan=3></td></tr>
  <tr height="40"><td align="left" colspan=3> <h3><?=$topic->board_title?></h3> </td></tr>
  <tr height="1" bgcolor="lightgrey"><td colspan=3></td></tr>
  <tr height="30" style="color:grey; font-size:12pt;">
    <td align="left" width="200px"> 작성자 : <?=$topic->board_userid?> </td>
    <td> 작성일시 : <?=$topic->board_date?></td>
    <td align="left" width="150px"> 조회수 : <?=$topic->board_count?></td>
  </tr>
  <tr height="1" bgcolor="lightgrey"><td colspan=3></td></tr>
  <tr height="15"><td colspan=3></td></tr>
  <tr><td style="vertical-align:top;" colspan=3><div align="left">
    <?php
      if($topic->board_file && $topic->board_file != 'no file'){
    ?>
      <img src="/static/img/<?=$topic->board_file?>" style="max-height:500px" /><br />
      <?=nl2br($topic->board_write)?> </div></td></tr>
    <?php
      }else{
    ?>
      <?=nl2br($topic->board_write)?> </div></td></tr>
    <?php
      }
    ?>
  <tr height="15"><td colspan=3></td></tr>
  <tr height="1" bgcolor="lightgrey"><td colspan=3></td></tr>
  <tr height='44'>
    <td colspan=3>
      <form action="" method="post">
        <input type="button" name="" value="수정" onclick="location.href='/index.php/Board/modify/<?=$topic->id?>'">
        <input type="button" name="name" value="삭제" onclick="location.href='/index.php/Board/delete_process/<?=$topic->id?>'">
      </form>
    </td>
  </tr>
  <tr height="1" bgcolor="lightgrey"><td></td></tr>
</table>
  | 
                |||
| 다음글 | 페이지네이션 다시 질문합니다. 꼭 좀 도와주세요 | ||
| 이전글 | 새로운 객체 생성은 어떻게 하나요? (6) | ||
| 
                             
                                kaido
                                /
                                2016/02/04 07:17:35 /
                                추천
                                0
                             
                             | 
                    
게시글 불러오는 곳에서 페이지네이션 함수를 호출 하시면 됩니다.
model 에 test_table 고정으로 박힌것은 $table 변수 넣고 함수에서 $table 를 인자값으로 넘기면 어느 게시글에서도 원하는 테이블로 페이지네이션이 되겠지요?
$pagenation_list = $this->pagination($id, $table);