지역 셀렉트 검색

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
지역 셀렉트 검색

QA

지역 셀렉트 검색

본문

이곳에 올라온 좋은 자료들을 이용하여 아래와 같이 2단 셀렉트를 이용한 지역 검색페이지(list.php)를 만들고 있습니다.

아래와 같이 하면 작동은 잘 합니다만, 한가지 문제점이 "wr_1=부산&wr_1=강서구"와 같이 검색이 되다보니 '서울 강서구'와 '부산 강서구'가 같이 검색이 되어 버립니다.

그리고 <script>$("#wr_1").val("<?=$_GET[wr_1]?>")</script> 해서 아이디를 이용해서 검색된 지역이 계속 고정되게 되어야 하는데 현재 처럼하니 id="wr_1"이 안 먹히는 것 같습니다.

"wr_1=부산&wr_1=강서구"가 아닌 "wr_1=부산 강서구" 처럼 하려면 어떻게 하면 될까요?

그리고 검색후 지역이 고정되게 하려면 또 어떻게 하면 될까요?

제가 한번 해결해 보려고 하루종일 구글링도 해보고 해도 도저히 해결이 안되어 도움을 요청드립니다.

고수님들은 5분이면 해결하실 것 같은데 제 실력으로는 도저히 해결이 안되네요...^^;;

소스는 길어서 보기 쉽게 필요한 부분만 발췌하여 올려드립니다.

 

<select name="wr_1" onchange="getList(this.selectedIndex)" class="frm_input">
    <option value=''>시/도 선택</option>
    <option value='서울'>서울</option>
    <option value='경기'>경기</option>
</select>
<select name="wr_1" class="frm_input">
    <option>-------</option>
</select>    

<script>$("#wr_1").val("<?=$_GET[wr_1]?>")</script

 

<select name="sfl" id="sfl" style='display:none;'>
    <option value="wr_subject||wr_content||wr_1||wr_2||wr_3||wr_4||wr_5">통합검색</option>
</select>
<input type="text" name="stx" value="<?php echo stripslashes($stx) ?>" id="stx" class="frm_input" size="25" maxlength="20" placeholder=" 검색어를 입력해주세요"> 
<input type="submit" value="검색" id="btn05">

 

<script type="text/javascript">
    var listText = new Array();
    var listValue = new Array();
    listText[0] = new Array('강남구','강동구','강북구','강서구','관악구','광진구','구로구','금천구','노원구','도봉구','동대문구','동작구','마포구','서대문구','서초구','성동구','성북구','송파구','양천구','영등포구','용산구','은평구','종로구','중구','중랑구'); // 각 option의 text
        listValue[0] = new Array('강남구','강동구','강북구','강서구','관악구','광진구','구로구','금천구','노원구','도봉구','동대문구','동작구','마포구','서대문구','서초구','성동구','성북구','송파구','양천구','영등포구','용산구','은평구','종로구','중구','중랑구'); // 각 option의 value
    listText[1] = new Array('고양시');
    listValue[1] = new Array('고양시');

    function getList(sel_id) {
        var sel = document.getElementsByName('wr_1');
        var sel_id = sel_id - 1;
        if(sel_id>=0) {
                sel[1].options.length = listText[sel_id].length;
                for(i=0;i<listText[sel_id].length;i++){
                        sel[1].options[i] = new Option(listText[sel_id][i], listValue[sel_id][i]);
                }
        } else {
                sel[1].options.length = 1;
                sel[1].options[0].text = "-------";
                sel[1].options[0].value = 0;
        }
    }
</script>

이 질문에 댓글 쓰기 :

답변 2

변수를 같은걸로 사용하면 뒤에 붙은 강서구만 검색될거같네요.

두개를 같은 변수명으로 사용하지 마시길 바랍니다.

 

일단 두가지 방법이 있습니다. 

1. 검색 submit 할때 시도 값과 시군구 값을 합치는 방법

2. 시도의 wr_1 을 wr-1_1, 시군구의 wr_1 을 wr_1_2 로 바꾸고 검색해주는 곳에서 합치는 방법입니다.

 

1번은 해당 값을 선택된것처럼 해주는 부분
<script>$("#wr_1").val("<?=$_GET[wr_1]?>")</script>
부분이 문제될 수 있습니다.

 

저라면 2번방법으로 하겠습니다.

 

네. 아무래도 그렇게 해야 할 것 같습니다.
$wr_1 = $wr-1_1." ". $wr-1_2; 하면 되겠죠?
그렇게 두개를 보낼 경우에는 list.php에서는 어디로 보내지는가요?
각 페이지 마다 테스트를 해 보는데 해당 페이지를 못 찾겠습니다.
참고로 아래 스킨을 사용하고 있습니다.
https://sir.kr/g5_skin/34034?sfl=wr_subject%7C%7Cwr_content&stx=%EB%8B%A4%EC%A4%91+%EA%B2%80%EC%83%89

검색결과를 보여주는 페이지로 보내야겠지요.
list.php 에서 같은 페이지에서 검색결과를 보여준다면 list.php
검색결과가 다른곳에서 보여준다면 다른곳의 url로 보내주면 되지요.
검색은 <form>태그에
<form action="URL"></form>
저기에 있거나 action값이 없다면 자기 자신 즉 list.php거나 <form onSubmit="return 유효성검증함수명()"></form>에 적혀 있는 유효성검증함수() 에 form.action="URL" 이라고 적혀있을겁니다.

검색결과를 보여주는 페이지 즉, wr_1_1, wr_1_2를 받는곳에서는 다음과 같이 처리하시면 될겁니다. (GET방식으로 넘겨 받는기준입니다. 문의글기준)
검색을 위한 추가 쿼리문을 $sql_search 라고 하면


$sql_search .= ($_GET['wr_1_1'] != '') ? " and wr_1 like '%".$_GET['wr_1_1']."%' " : "";
$sql_search .= ($_GET['wr_1_2'] != '') ? " and wr_1 like '%".$_GET['wr_1_2']."%' " : "";

이런방식으로 추가하면 될듯합니다.
그리고 선택하는 javascript부분은 알아서 하시겠지요. ^^

제일 쉬운방법이 지역별로 하지 않고 다음 주소를 이용해서 하면 되요 ㅋㅋㅋ

저도 지역별 데이타 싸그리 가져오려니까.. 너무 많아서..

답변을 작성하시기 전에 로그인 해주세요.
전체 8
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT