게시판 검색관련 질문드립니다.
본문
제가 특정 게시판을 검색을 위한 서브페이지나 해당스킨 list 파일을 수정하려고하는데
어떻게 해야 될지 잘모르겠습니다.
http://miraeobgy.com/community/gallery/ 예시사이트입니다
위의 사이트처럼 엄마, 아빠 이름을 여분필드에 넣고 두값모두 넣어야만 검색이 되었으면 하는데
어떻게 해야 될지 잘 모르겠습니다. 두값다 넣어야만 검색되게 하였지만
아직 시작한지 얼마안되서 초보라... 검색하면 검색입력하는 창에 각각 다른 값이 나와야 하는데
두번째에 입력한 값으로 두개다 나와버리네요ㅠㅠ..
해당 게시판스킨 리스트페이지에 작성한 검색기능입니다. 셀렉트박스는 display:none을 하였습니다.
<fieldset id="bo_sch">
<legend>게시물 검색</legend>
<form name="fsearch" method="get">
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
<input type="hidden" name="sca" value="<?php echo $sca ?>">
<input type="hidden" name="sop" value="and">
<label for="sfl" class="sound_only">검색대상</label>
<select name="sfl" id="sfl">
<option value="wr_2"<?php echo get_selected($sfl, 'wr_2'); ?>>아빠</option>
</select>
<label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
<input type="text" name="stx" value="<?php echo stripslashes($stx) ?>" required id="stx" class="frm_input required" size="15" maxlength="255" placeholder="아빠이름">
<select name="sfl" id="sfl">
<option value="wr_1"<?php echo get_selected($sfl, 'wr_1'); ?>>엄마</option>
</select>
<label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
<input type="text" name="stx" value="<?php echo stripslashes($stx) ?>" required id="stx" class="frm_input required" size="15" maxlength="255" placeholder="엄마이름">
<input type="submit" value="검색" class="btn_submit" id="sear_btn">
</form>
</fieldset>
진짜 얕은 지식으로 만들었는데 그이후가 문제네요ㅠㅠㅠ..... 선배님들 어떻게 수정해야 될까요??
1. 리스트페이지에 접속했을때는 목록은 없고 검색하는 페이지만 나오고 검색햇을때 해당 게시물만 나올수 있을까요??
2. 혹시 괜찮다면 검색후 input text박스에 두값 모두 동일값이 나오는게 아니라 아빠이름 박스에는 검색한 아빠이름, 엄마이름 박스에는 검색한 엄마이름이 나왔으면 합니다...... 선배님들 한수부탁드립니다.
!-->답변 3
1) list.ksin.php 에서 리스트가 <form>~</form> 으로 감싸져 있습니다.
해당 부분을 if 문으로 처리해주면 됩니다.
<?php if ($stx) { /* 검색어가 있는 경우에만 */ ?>
<form name="fboardlist" ~
~
</form>
<?php } ?>
2) 검색관련 처리는 /lib/common.lib.php 에서 get_sql_search() 함수가 핵심적인 부분입니다.
해당부분을 먼저 이해하시는 것을 추천합니다.
해당 함수의 소스를 보면 멀티검색 지원 관련해서..,
검색필드의 구분자는 '||'
검색어의 구분자는 공백
연산자의 기본값은 'and' 로 되어있음을 확인할 수 있습니다.
주소창에서 바로확인해보고 싶다면..
리스트 URL 에 추가로 &sfl=wr_1||wr_2&stx=김아빠 김엄마
식 입니다.
이를 이용한다면 다음과 같이 처리를 해주시면 됩니다.
ex. 여분필드1,2 를 활용했을 때
<input type="hidden" name="sfl" value="wr_1||wr_2">
<input type="hidden" name="stx" value="">
아빠 : <input type="text" name="wr_1" value="">
엄마 : <input type="text" name="wr_2" value="">
//자바스크립트에 다음의 내용 추가
$(function() {
$('form[name=fsearch]').on('submit', function() {
var f = document.forms['fsearch'];
f.stx.value = f.wr_1.value + ' ' + f.wr_2.value;
});
});
http://www.isarangclinic.co.kr/bbs/board.php?bo_table=gall&sfl=wr_1%7C%7Cwr_2&stx=박윤희%20서정환
간단화 시키면
<form name="fsearch">
~
</form>
안에
<input type="hidden" name="sfl" value="wr_1||wr_2"> 는 해결이 된 것이고,
<input type="hidden" name="stx" value="">
엄마 이름 : <input type="text" name="t1">
아빠 이름 : <input type="text" name="t2">
엄마 이름과, 아빠 이름을 임의의 텍스트박스로 받아서,
stx 값을 '엄마이름 아빠이름' 으로 만들어주면 되는 문제입니다.
<form name="fboardlist" ~> 부분은 원 소스로 되돌리시는게 좋을 듯 합니다.
<input type="text" name="wr_1" value="<?php echo stripslashes($wr_1) ?>" required id="wr_1" class="frm_input required" size="15" maxlength="255" placeholder="엄마이름">
<input type="text" name="wr_2" value="<?php echo stripslashes($wr_2) ?>" required id="wr_2" class="frm_input required" size="15" maxlength="255" placeholder="아빠이름">
이러한 형태로 두개를 다 text형태로 넣고 엄마이름과 아빠이름을 적게끔 해주셔야 겠지요
select는 선택하는 부분이라서 그부분은 빼셔도 될 듯합니다.