검색어를 셀렉트로 받아서 하는 방법은
본문
검색에서 검색어를 입력하는 대신 셀렉트로 받아서 할러고 합니다.
셀렉트로 받은 값을 검색어에 대체할러고 아래와 같이 hidden으로 보내는데
반영이 되지 않고 전체검색이 되버리네요.
검색어로 받는 부분이 잘못 된것 같은데 한번 봐 주시면 감사하겠습니다.
<div id="hd_sch">
</script>
<form name="frmsearch1" action="<?php echo G5_SHOP_URL; ?>/search.php" onsubmit="return search_submit(this);">
<input type="hidden" name="q" id="sch_str" value="<?php echo $hp1 ?> <?php echo $hp2 ?> <?php echo $hp3 ?>">
<select name='hp1' class='ed' itemname='원산지' >
<option value='' <? if($hp1 == "") echo "selected"; ?>>선택하세요</option>
<option value='베트남' <? if($hp1 == "베트남") echo "selected"; ?>>베트남</option>
<option value='중국' <? if($hp1 == "중국") echo "selected"; ?>>중국</option>
</select>
<select name='hp2' class='ed' itemname='색상' >
<option value='' <? if($hp2 == "") echo "selected"; ?>>선택하세요</option>
<option value='검정' <? if($hp2 == "검정") echo "selected"; ?>>검정</option>
<option value='흰색' <? if($hp2 == "흰색") echo "selected"; ?>>흰색</option>
</select>
<select name='hp3' class='ed' itemname='형태' >
<option value='' <? if($hp3 == "") echo "selected"; ?>>선택하세요</option>
<option value='원형' <? if($hp3 == "원형") echo "selected"; ?>>원형</option>
<option value='사각' <? if($hp3 == "사각") echo "selected"; ?>>사각</option>
</select>
<label for="sch_str" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
<input type="submit" value="검색" id="sch_submit">
</form>
<script>
function search_submit(f) {
if (f.q.value.length < 2) {
alert("검색어는 두글자 이상 입력하십시오.");
f.q.select();
f.q.focus();
return false;
}
return true;
}
</script>
답변 3
$hp1, $hp2, $hp3 데이터 에 대해서
어떤 쿼리문으로 처리를 하셨나요??
$q = $hp1 + $hp2 + $hp3; <-- 삭제
frmdetailsearch.q.value= $hp1 +' '+ $hp2 +' '+ $hp3;
잉끼님, 균이님 감사합니다.
상기 예제에서는 셀렉트3개의 값을 합하여 검색어 값인 q에
hidden값으로 보내서 할러고 했는데 이방식은 잘 안되더군요.
결국은 검색어 값인 q외 q1, q2이렇게 3개를 셀렉트폼으로 값을 받아 보낸후
결과 페이지인 search.php 파일에서
q1과 q2관련 함수들을 새로 생성하여
적용하는 방식으로 해결 하였습니다.