CI 묻고 답하기

제목 페이지네이션 질문!
글쓴이 코드이그맨 작성시각 2016/06/21 15:33:45
댓글 : 16 추천 : 0 스크랩 : 0 조회수 : 19019   RSS

 

 

$config[‘reuse_query_string’] = FALSE;

 

 

위 속성을 이용해서, 페이지네이션을 이용한, 검색을 했을때의 페이지네이션을 구현했습니다.

 

근데 문제가 발생하였습니다 -_-;;

 

문제는 제가 페이지네이션으로 

2번째 페이지에서 검색하면,

 

결과화면이, 1페이지로 가는게 아니라,

페이징이 2페이지로 된 상태에서 있습니다 -_-;;

 

이거 어떻게 해결해야하나요??

밑에 사진과 같이 지금 2페이지가 선택이 되어있는데,

다른걸 검색하면 1페이지로 가는게 아닌, 2페이지 상태에서 결과값이 나옴 -_-;;

 

 

 

 다음글 이벤트에대한 부분이 안보이는군요 (4)
 이전글 페이지네이션 a 태그 만질라면? (2)

댓글

코드이그맨 / 2016/06/21 15:47:54 / 추천 0

검색버튼을 누를때,

location.href = "http://test.kr?search_val=" + val;

 이거 대신,

 

location.replace("http://test.kr?search_val=" + val);

사용해서 해결했습니다.

 

-_-;;

되었다가, 다시 안되는 ........

허허;;; 다시 보고 오겠습니다.

한대승(불의회상) / 2016/06/21 16:07:16 / 추천 1

location.href 나 location.replace() 그넘이 그넘....

히스토리가 생기나 안생기나 차이 입니다.

코드이그맨 / 2016/06/21 16:08:55 / 추천 0
현재 열심히, 해결방안을 찾아보고있습니다 ~_~;;
kaido / 2016/06/21 16:16:37 / 추천 1
 검색 값이 있으면 페이지 넘버를 강제로 1로 초기화 해버리면 끗.
코드이그맨 / 2016/06/21 16:20:05 / 추천 0

카이도

/ 그럴경우 검색값이 있을때마다, 0이 되어서 첫페이지만 계속 보임 OTL

 

코드이그맨 / 2016/06/21 16:20:38 / 추천 0
//list get
public function list_get($page = 0, $search_val=null)
{

    if($this->input->get("page") != null or $this->input->get("page") != 0 ){

        $page = $this->input->get("page");

    }

    if($this->input->get("search_val") != null){

        $search_val = $this->input->get("search_val");

    }


    //Model
    $this->load->Model("Board_model");
    $obj = $this->Board_model->get_list($page, $search_val);


    echo json_encode($obj, JSON_UNESCAPED_UNICODE);


}

 

코드는 이러합니다.

그리고 저렇게 걸어둬, http://test.kr/Board/index/5?search_val=%ED%95%98%EC%9D%B4

계속 위 주소에서 초기화면을 짜악 출력홥니다..ㄷㄷ

kaido / 2016/06/21 16:28:00 / 추천 1

@코드이그

아 그렇지 -_-

잠시 제가 만든 코드랑 헷깔림.

잠시 제가 만들거 확인 좀 해야겠네요 ㄷㄷ

 

아 그랬지. 전 페이지네이션 클릭 이면 page 넘버가 유지 되지만 검색 버튼 클릭시 페이지 넘버가 초기화 되었군요.

[자기가 만들고도 모름]

코드이그맨 / 2016/06/21 16:31:52 / 추천 0

 

코드이그맨 / 2016/06/21 16:32:50 / 추천 0

카이도님 말씀되로 먼저 해보기도 했지만, 

저렇게 하면, 내 페이지 커서는 2페이지로 되어있음. 

근데 1페이지 출력 화면이 나옴 ..OTL 

저거 커서가 1로 가야하는데, 카이도님이 말씀해주신되로 해도..해결이 안되네요 하하하하핫 ㅜㅠㅠ

kaido / 2016/06/21 16:38:25 / 추천 1

페이지네이션 커서가 안가는 문제는 page 설정이 아직도 2번으로 들어가서 생성되서 그렇습니다

$config['uri_segment']  이것과 관련 있습니다.

저도 한번 만들어 놓고는 로직은 잘 안봐서 막 헷깔리네요 ㅋㅋ 

코드이그맨 / 2016/06/21 16:40:07 / 추천 0

오케이 한번 해결해보고오겠습니다.

 

URI세그먼트 문제보다는..

뭔가 링크적인 문제같아요

http://test.kr/Board/index/35?search_val=%ED%85%8C%EC%8A%A4%ED%8A%B8

 

맨 마지막페이지에서 제가 검색을 하면, ID값이 35로 고정이 되어있습니다 -_-;;;

kaido / 2016/06/21 16:50:44 / 추천 0

.... 잠깐만요?

여태 index/숫자 <- 이거 페이지번호라고 생각 했는데 혹시 게시물 번호 아닌가요?

만일 페이지번호이라면 $this->input->get("page") 가 아니라 $this->uri->segment(4) 이게 $page 역활을 하고 있는 것입니다.

애초에 page 를 쿼리스트링으로 받아 올려면 

http://test.kr/Board/index/35?page=2&search_val=%ED%85%8C%EC%8A%A4%ED%8A%B8

이렇게라도 붙어있어야 page 변화가 있을텐데요...?

그리고 쿼리스트링 하실때는

$config['page_query_string'] = true; //쿼리 스트링 

이것 설정이 들어가야 합니다.

 

지금보니 2가지 오해가 있는것 같습니다.

쿼리스트링 하는 방식과 페이지네이션에 uri 설정 부분에서 말이죠.

다시 한번 차근차근 설정 해보세요 제가 보기에는 90%는 다 오신것 같습니다.

코드이그맨 / 2016/06/21 16:55:38 / 추천 0

index/번호

 

0 -> 1번 페이지

5 -> 2번 페이지

10 -> 3번 페이지.

 

위 번호 값으로 DB에서는 limit  번호, 5; 이런식으로 구현했습니다 ~_~ OTL

검색을 했을때는..후아;; 쿼리스트링 트루 켜서 좀 바꿔야 겠습니다. per_page로 쇼부치고 올게요

kaido / 2016/06/21 16:58:43 / 추천 1

아아 그랬드랬죠.

CI 기본 page num 생성 기본이 저런 식이었죠.

전 전혀 다른 방식을 사용해서 헷깔렸습니다 ㅎㅎ 

일단 어느쪽이든 $page = $this->input->get("page"); 로 사용하실려면 쿼리 스트링 설정 온 하시고

보낼때도 만들어서 보내줘야 합니다.

코드이그맨 / 2016/06/21 19:48:24 / 추천 0

-_-;;

집에와서 끄적이니 고침..

이유는.. 검색관련 버튼과 태그가 있는곳이 form태그로 감싸져 있어요..

인풋태그에 text 입력해서 엔터치면... 알죠??;; get 방식으로 그냥 name값 해서 날라감..

버튼같은 경우 onclik으로 해서 처리 해서 누르면, 잘 나오는데..

그래서 form태그 날리고... event.keycode == 13 이용해서..엔터치면 onclick이랑 똑같이 동작하라고 했습니다..-_-;;

삽질 아오;;;;