테스트 사이트 - 개발 중인 베타 버전입니다

검색어를 셀렉트로 받아서 하는 방법은 채택완료

prpr 11년 전 조회 6,367

검색에서 검색어를 입력하는 대신 셀렉트로 받아서 할러고 합니다.

셀렉트로 받은 값을 검색어에 대체할러고 아래와 같이 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개

p
11년 전

잉끼님, 균이님 감사합니다.

 

상기 예제에서는 셀렉트3개의 값을 합하여 검색어 값인 q에

hidden값으로 보내서 할러고 했는데 이방식은 잘 안되더군요.

 

결국은 검색어 값인 q외 q1, q2이렇게 3개를 셀렉트폼으로 값을 받아 보낸후

 

결과 페이지인 search.php 파일에서

q1과 q2관련 함수들을 새로 생성하여

적용하는 방식으로 해결 하였습니다.  

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

11년 전

$q = $hp1 + $hp2 + $hp3; <-- 삭제

 frmdetailsearch.q.value= $hp1 +' '+ $hp2 +' '+ $hp3;

 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

11년 전

$hp1, $hp2, $hp3  데이터 에 대해서

어떤 쿼리문으로 처리를 하셨나요?? 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

p
prpr
11년 전
답변 감사합니다.
특별히 쿼리문을 작성한것은 아니고요.

아래 원문은 입력값을 받아서 $q값으로 넘겨주는것입니다.
<input type="text" name="q" value="<?php echo $q; ?>" id="ssch_q" class="frm_input" size="40" maxlength="30">

그런데, 검색어 입력하는것을
셀렉트로 3개를 나누어 각 검색어를 $hp1, $hp2, $hp3 으로 받아서
$q값에 그냥 넘겨 주는것입니다.

즉, 3개의 $hp1+ $hp2 + $hp3 의 값(value)을 합하여
검색어 변수 $q의 값(value)으로 넘겨주는것이 가능하게 할러고 한것입니다.

아래 스크립트 문을 활용해서 할러고 했던 것입니다.

<script>
$hp1 = frmdetailsearch.hp1.value;
$hp2 = frmdetailsearch.hp2.value;
$hp3 = frmdetailsearch.hp3.value;

$q = $hp1 + $hp2 + $hp3;
</script>​

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인