메인 검색부분 부탁드려요;;;;;;;;;;;;; > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

메인 검색부분 부탁드려요;;;;;;;;;;;;; 정보

메인 검색부분 부탁드려요;;;;;;;;;;;;;

본문

<form name="fsearch2" method="get" onsubmit="return select_submit(this);">
<input type="hidden" name="....." value=".......">
  <select.........생략
</form>

function select_submit(f){
f.action = "./bbs/board.php?bo_table=d_item_1..........";
return true;
}

일단 위 그림같은 검색 부분을 메인 index.php 에다가 삽입하려합니다.

기존있던 전체검색바 이용해서 검색페이지(search.php)로 이동하는거 말구요~

게시판 여분필드(wr_1 ~ wr_5) 5개 이용하여, 여분필드 모두 셀렉트박스로 구현하여

해당 필드 선택한후 검색하면! 해당 게시판 리스트 이동되어지게 구현하려합니다.

참고로 wr_1과 wr_2는 주소셀렉트처럼 wr_1 선택후 wr_2값나오는 동적셀렉트입니다.

셀텍트박스구현 하고 나서 셀렉트 박스 안의 5개 여분필드값들을 폼으로  넘겨 리스트에

뿌려야하는데 히든값으로 뭘넣어야하고, 서밋할때 액션 경로를 이것저것 줘봤는데

도저히..모르겠습니다.ㅎㄷㄷㄷ 밑부분 어떤식으루 메인에서 넘겨야하는지좀

부탁드립니다.!!!꾸벅!
  • 복사

댓글 전체

이런 류의 검색은 액션이던 폼값이던 무엇을 넘겨주어도 검색이 이루어질 수 없습니다
list.php를 상당 부분 수정해야 가능합니다
수정하지 않고 하려면
<input type='hidden' name='sfl' value="wr_1||wr_2||wr_3||wr_4||wr_5">
<input type='hidden' name='stx' value="한국 서울 노원구 상계동 341-7">
--stx의 value는 select에서 선택되어진 값으로 만들어 넣습니다(자바스크립트에서)

이런 형태로 넘기면 기본 검색 함수에서 stx 값을 잘라서 wr_1~wr_5필드에서 검색하게는 되지만
한국 이란 값을 wr_1부터 wr_5필드 까지 모두 검색하게 되고, 나머지 검색어도 마찬가지 작업을
하므로 아주 비효울적이고 검색값의 종류에 따라서는 제대로 검색 되지 않을 수도 있을테니
방법이 못됩니다
즉 간단히 기본 설정으로는 불가능하다는 얘깁니다
<form name="fsearch2" method="get" action="<?= $g4['path'];?>/bbs/board.php?bo_table=게시판이름">
  <select.........생략
</form>

그 다음
/bbs/list.php에서

if($_GET['wr_1']){
  $sql_search .=" and wr_1 = '$_GET[wr_1]' ";
}
if($_GET['wr_2']){
  $sql_search .=" and wr_2 = '$_GET[wr_2]' ";
}

if($_GET['wr_3']){
  $sql_search .=" and wr_3 = '$_GET[wr_3]' ";
}

...


그리구

$qstr.="&wr_1=".urnencode($_GET['wr_1']).'&wr_2='.urnencode($_GET['wr_2']).'&.....';
$write_pages = get_paging($config[cf_write_pages], $page, $total_page, "./board.php?bo_table=$bo_table".$qstr."&page=");


하시면 됩니다.
일단 균이님 네발가락님 답변주셔서 감사합니다 '_ _'
서밋하면 주소창에도 폼 액션경로에서 "bo_table=게시판이름" 이부분만 빠지고 서밋되어 게시판이 존재하지않는다고 나오구..리스트에서는 Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in...라고 에러뜹니다.;;
기본적으로는 네발가락님의 코드가 들어가는 것이지만 저렇게 되어서는 실행되지않습니다
왜냐하면 $sql_search값이 생성이 된 후에 덧붙이기 해야하는데 폼을 submit 한다고 해서
$sql_search 가 생성되는 것이 아니기 때문입니다(sca또눈 sfl, stx값이 넘어가야 만들어집니다)
따라서 $sql_search .=" and...."이런 구문을 넣으면 where구문에 에러가 생깁니다

또한 $total_count 를 제대로 계산해 오지 못하므로 해서 페이징이 맞지않게 됩니다
$sql_search를 제대로 만들었다해도 sca 또는 stx값이 없으면 근본적으로 쿼리문에서 sql_search를 적용해서 쿼리를 하지않습니다
검색 후 리스트에서 전체목록 보기 버튼도 문제...
하여튼 간단한 문제가 아닙니다

아! 문제점을 쓰고보니 해결 방법이 있겠습니다
wr_1을 sfl로 설정해주고 wr_1의 select 값을 stx로 설정해서 넘기면 가능하겠네요
wr_1의 값을 포함하는(INSTR) 자료를 검색하므로 완전히 일치해야 한다면 이 방법도 문제이긴 하지만...
<form name="fsearch2" method="get" action="<?= $g4['path'];?>/bbs/board.php">
<input type="hidden" name="bo_table" value="게시판이름">
  <select.........생략
</form>


if($_GET['wr_1']){
  $sql_search .= $sql_search ? " and wr_1 = '$_GET[wr_1]' " :  " wr_1 = '$_GET[wr_1]' ";
}
if($_GET['wr_2']){
 $sql_search .= $sql_search ? " and wr_2 = '$_GET[wr_2]' " :  " wr_2 = '$_GET[wr_2]' ";
}

if($_GET['wr_3']){
 $sql_search .= $sql_search ? " and wr_3 = '$_GET[wr_3]' " :  " wr_3 = '$_GET[wr_3]' ";


}
...
$sql_search를 제대로 만들었다해도 sca 또는 stx값이 없으면 근본적으로 쿼리문에서 sql_search를 적용해서 쿼리를 하지않습니다
즉 검색구문이 적용되지않아요
균이님 답변 감사합니다. ^^
포인트를 드리고싶은데 어떻게 드리는지몰랐습니다.;;
일단 메인검색부분 계속 손보는는 중이구요..;;ㄷㄷ
네발가락님소스도응용해보구..이것저것해봤는데..
그냥단순히 wr_1을 sfl로 설정해주고 wr_2의 select 값을 stx로 설정해서 넘기면 가능한데..
이렇게하면 wr_1, wr_2 만 셀렉트선택하고 넘기면 두필드는 검색되어서 넘어오는데...
그나머지 wr_3, wr_4, wr_5 필드 선택하나라도 추가선택하면 그냥 전체리스트로 넘어와버리고
안돼네요..휴.. wr_3, wr_4, wr_5 필드도 각각 sfl로 설정하고 select 값을 stx로 설정해서 넘기면 하나하나는 되는데 1~5까지 전부 검색가능케는 어떻게해야지..안돼네요;;계속 이것저것해보고있습니다!^^;;;
소스가 왠지 많이 조잡했지만;; 카테고리 분류필드와 여분필드 추가 이용해서 구현했습니다.;;
카테고리 이용을 몰랐네요;; 균이님 네발가락님 조언 감사합니다~
© SIRSOFT
현재 페이지 제일 처음으로