CI 묻고 답하기

제목 페이지네이션에서 뭔가 계속 잘안됩니다.. 도와주세요!
글쓴이 리상사 작성시각 2014/05/17 17:53:15
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 14687   RSS
아래 이미지를 보시면 페이지네이션을 출력한 부분입니다.
페이지 이동은 되는데 페이지를 이동해도 계속 1만 색깔이 들어와있네요;;
이유가 뭘까요? 아래에 소스 올렸습니다..



컨트롤러
class Board extends CI_Controller{
        function __construct(){
            parent::__construct();
            $this->load->database();
            $this->load->model('board_m');
            $this->load->helper(array('url', 'date'));
        }

        /* 주소에서 메서드 생략시 실행되는 기본 메서드 */
        public function index(){
            $this->lists();
        }

        /* 사이트 헤더 푸터가 자동으로 추가된다. */
        public function _remap($method){
            $this->load->view('header_v');

            if(method_exists($this, $method)){
                $this->{"{$method}"}();
            }

            $this->load->view('footer_v');
        }

        /* 목록 불러오기 */
        public function lists(){
            //페이지네이션 라이브러리 로딩 추가
            $this->load->library('pagination');

            //페이지네이션 설정
            $config['base_url'] = '/bbs/index.php/board/lists/ci_board/';    //페이징 주소
            $config['total_rows'] = $this->board_m->get_list($this->uri->segment(3), 'count');
            //전체 개시글 갯수
            $config['per_page'] = 5;        //한 페이지에 표시할 게시물 수
            $config['uri_segment'] = 5;        //페이지 번호가 위치한 세그먼트

            //페이지네이션 초기화
            $this->pagination->initialize($config);
            //페이징 링크를 생성하여 view에서 사용할 변수에 할당
            $data['pagination'] = $this->pagination->create_links();

            //게시물 목록을 불러오기 위한 offset, limit값 가져오기
            $page = $this->uri->segment(4, 1);     //5로 하니까 안되요!! 4로 하니까 동작합니다.

            if($page > 1){
                $start = (($page/$config['per_page'])) * $config['per_page'];
            }
            else{
                $start = ($page - 1) * $config['per_page'];
            }

            $limit = $config['per_page'];

            $data['list'] = $this->board_m->get_list($this->uri->segment(3), '', $start, $limit);
            $this->load->view('board/list_v', $data);
        }
    }


                <tfoot>
                    <tr>
                        <th colspan="5"><?= $pagination; ?></th>
                    </tr>
                </tfoot>

 
 다음글 CI에서 멀티 DB 연결 질문드립니다. (3)
 이전글 페이지네이션 관련 질문과 CMS기본적인 이해에 대한 질... (3)

댓글

letsgolee / 2014/05/19 08:15:15 / 추천 0
답을 스스로 찾으신 것 같은데요...
 
$page = $this->uri->segment(4, 1);     //5로 하니까 안되요!! 4로 하니까 동작합니다.

위에서 http://localhost/bbs/index.php/board/lists/ci_board/10 라는 경로라면 
segment 1번은 board, 2번은 lists, 3번은 ci_board, 4번은 10 이므로 페이지 넘버를 얻어오려면 당연히 4번을 써야죠. 5번이 아니라요. 따라서 위의 코드에서 다음만 고치면 될 듯합니다:
$config['uri_segment'] = 4;        //페이지 번호가 위치한 세그먼트