지역 셀렉트 검색

지역 셀렉트 검색

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부분은 알아서 하시겠지요. ^^

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

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

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

회원로그인

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