질문 Q #8479
검색시 파라미터 전송 방법... 함 봐주세요~
나이롱플머 2009-07-22 18:47:28
CI가 파라미터 처리하는게 좀 난해해서~ 이틀째 뒤적거리다가 발견한 방법입니다.

get으로 submit을 하면~ 페이지 주소 뒤에 ...index/?key1=id&key_v=test1&key2=name&key_v=test2

저렇게 쿼리 스트링이 붙는것을 이용하는 방법인데요

컨트롤쪽에서 쿼리 스트링을 아래와 같이 처리하면

parse_str($_SERVER['QUERY_STRING']);

ehco $key1 -> id
ehco $key_v-> test1

찍어보면 해당 값이 저렇게 나옵니다.

그리고 페이지 이동시에 저 값들이 유지 되기 위해서 Pagination.php 을 조금 수정해줘야 합니다.

Pagination.php 에 저 파라미터 값을 넘겨받을 변수를 추가하고 

ex) var $test = '';


하이퍼 링크 넣어주는 부분에 저값을 넣어 줍니다.

ex) $output .= $this->num_tag_open.'<a href="'.$this->base_url.$n.$this->test.'">'.$loop.'</a>'.$this->num_tag_close;


그리고 컨트롤에서 아래와 같이 설정값으로 파라미터 값을 넘겨주면 페이지 이동시에도 해당 값들이 따라 붙습니다.

ex)   $config['test'] = "?".$_SERVER['QUERY_STRING'];


테스트 해보니 별 이상없이 넘어 가긴 하는데~

제가 CI는 해본지가 얼마 안되서 저렇게 해도 문제가 없는지 알수가 없네요~ ^ ^;;

고수님들이 좀 봐주세요~ ( _ _ )


 



답변 2
#1 마냐 2009-07-22 19:49:04
#2 변종원(웅파) 2009-07-22 21:17:28
별 문제는 없을 겁니다. 프로그램에서 $key1 변수를 다이렉트로 접근하는 것이 아니라
parse_str($_SERVER['QUERY_STRING']); 이 구문을 통해 만들어진 변수로 접근을 하니..
parse_str 함수의 내용을 보지 못해서 확실하게 문제가 없다라고 말씀드리지는 못합니다. ^^;
get방식과 혼용하는 방법, 위에 마냐님이 거신 링크처럼 처리하는 방법, 검색어를 세션으로 구워
처리하는 방법 등 몇가지 방법이 있습니다.
전 두번째 방법, 현재 포럼에 적용한 방식을 선호합니다.