CI 묻고 답하기

제목 리스트에서 검색후 url에 검색어 보내기
글쓴이 ci_beginne 작성시각 2009/10/13 10:27:48
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 34144   RSS

ci로 게시판을 만들고 있는 ci초보자 입니다.

게시판 목록을 보면 검색이 있는데

ci포럼 같은 경우에는 검색을 하면은 q/검색어  이런식으로 url에 표시가되는데

제가 목록에서 검색한 경우에는 그렇게 표시가 안되거든요

http://dev.community.net/index.php/manage/popup

예를 들어 위의 경로에서 "test"f로 검색을 했다면 포럼에서는
http://dev.community.net/index.php/manage/popup/q/test

이렇게 되는데

제가 해보니까
http://dev.community.net/index.php/manage/popup 이렇게 되더라고요

    <form name="search_form" method="post" action="/index.php/manage/popup" onsubmit="return search_confirm();">
     <tr>
      <td width="454" height="36">
       <p>
       <select name="key" size="1">
        <option value="title" <? if($key == "title") echo "selected"; ?>>제목</option>
        <option value="contents" <? if($key == "contents") echo "selected"; ?>>내용</option>
        <!-- option value="name" <? if($key == "name") echo "selected"; ?>>작성자</option-->
       </select>
       <input type="text" name="keyword" size="9" value="<?=$keyword?>">
       <INPUT type="submit" value="검색">
       </p>
      </td>
      <td width="232" height="36">
      <p align="right"> </p>
      <p align="right"> 총 게시물 : <?=$total_record?>개 ( <?=$cur_page?> 페이지 / 총 <?=$total_page?> 페이지 )</p>
      </td>
     </tr>
    </form>

목록에서 검색하는 소스 입니다.

CI포럼처럼 URL에 나오게 할려면 어찌해야될까요?
 

 다음글 upload 라이브러리 허용확장자 특이점 (2)
 이전글 Openblog중 웹에디터 재질문 (7)

댓글

변종원(웅파) / 2009/10/13 11:41:51 / 추천 0
포럼에서는 post(ajax) 전송하기전에 주소를 만들어주는 방식으로 구현했습니다.

먼저 넘어온 주소에서 검색어 및 검색 필드를 삭제합니다. 그래야 새로 검색했을때 주소중복이 안됩니다.
//주소에서 검색어 삭제
//print_r($this->seg_exp);
if (in_array('q', $this->seg_exp)) {
	$arr_key = array_keys($this->seg_exp, "q");
	$arr_val = $arr_key[0] + 1;
	$search_word = $this->seg_exp[$arr_val];
	$search_url = "q/".$search_word;
	$arr_q = array_search('q', $this->seg_exp);
	array_splice($this->seg_exp, $arr_q,2);
} else {
  	$search_word = '';
	$search_url = '';
}
//주소에서 검색필드 삭제
if (in_array('sfl', $this->seg_exp)) {
	$arr_key1 = array_keys($this->seg_exp, "sfl");
	$arr_val1 = $arr_key1[0] + 1;
	$sfl = $this->seg_exp[$arr_val1];
	$search_sfl = "/sfl/".$sfl;
	$arr_s = array_search('sfl', $this->seg_exp);
	array_splice($this->seg_exp, $arr_s,2);
} else {
  	$sfl ='';
	$search_sfl = '';
}

$cnt = count($this->seg_exp);
$url='';
for ($i=0; $i < $cnt; $i++) {
	$url .= '/'.$this->seg_exp[$i];
	//echo $url."<BR>";
}
$this->seg_exp // 이것은 포럼에서 검색하시면 나옵니다. ^^  
 
그 후에 검색버튼을 눌렀을때 jquery 로 주소를 만들어주고 폼submit을 합니다.
<script>
$(document).ready(function(){
	$("#search_btn").click(function(){
		var sfl_val = $(":select:option[name=sfl]:selected").val();
		if($("#q").val() == ''){
			alert('검색어를 입력하세요');
			return false;
		} else {
			var act = '<?= $url ?>/q/'+$("#q").val()+'/sfl/'+sfl_val;
			$("#bd_search").attr('action', act).submit();
    	}
	});
});

이렇게 처리하고 있습니다. ^^;


ci세상 / 2009/10/13 12:28:48 / 추천 0

검색항목이 많을경우에는 그냥 post로 넘겨서 ~~ 이용하기도 한답니다.
 

foreach($_POST as $key => $val){ 
	$add_var[] = "{$key}/{$val}";
}

$url_value = implode("/",$add_var);