지역 셀렉트 검색
본문
이곳에 올라온 좋은 자료들을 이용하여 아래와 같이 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번방법으로 하겠습니다.
!-->
제일 쉬운방법이 지역별로 하지 않고 다음 주소를 이용해서 하면 되요 ㅋㅋㅋ
저도 지역별 데이타 싸그리 가져오려니까.. 너무 많아서..