시도, 시군구 셀렉트로 불러오기~

· 2020-03-13 (금) 17:00:59 · 8561 · 17

셀렉트로 만드는게 기존게 있는지 모르겠는데...

 

매번 작업할때마다 기존에 하던거 까먹어 기록차 여기 남겨보아요

 

소스는 개판이라 이해부탁드림..ㅋ

 

1. 셀렉트 박스 생성

 

[code]

<select name="h_addr1" id="h_addr1" onChange="item_Search(this.value)">
    <option selected value="">시/도</option>
    <?
    $sido_array = array("서울", "경기", "인천", "부산", "대구", "대전", "광주", "세종", "울산", "강원", "경남", "경북", "전남", "전북", "충남", "충북", "제주");
    foreach($sido_array as $key => $value){
     $sel_chk = "";
     if($h_addr1 === $value){
      $sel_chk = "selected";
     }
     echo '<option value="'.$value.'" '.$sel_chk.'>'.$value.'</option>';
    }
    ?>
   </select>
   <select id="h_addr2" name="h_addr2" >
    <option value="">시/군/구</option>
   </select>

[/code]

 

2. 스크립트

 

[code]

<script>
 
 function item_Search(Args){

  $('#h_addr2').empty();
  $('#h_addr2').append('<option value="">시/군/구</option>');

  if (Args == "")
   return;

  $.ajax({
   type  : "post",
   async  : false,
   cache  : false,
   data  : {"item1":Args},
   dataType : "xml",
   url   : g5_url+"/ajax.sidomake.php",
   success  : function(xml){

    if ($(xml).find("list").find("item").length > 0) {
     $(xml).find("list").find("item").each(function(i){
      var names  = $(this).find("names").text();
      $('#h_addr2').append('<option value="'+names+'">'+names+'</option>');
     });

     <?php if($h_addr2){ ?>
      $("select[name='h_addr2'] option[value='<?php echo $h_addr2; ?>']").attr('selected','selected');
     <? } ?>

    }
   }
  });


 }

</script>

[/code]

 

3. 데이터 생성

[code]

<?php
include_once('./_common.php');

if(!$item1) die('');

$addr['서울'] = array("강남구", "강동구", "강북구","강서구","관악구","광진구","구로구","금천구","노원구","도봉구","동대문구","동작구","마포구","서대문구","서초구","성동구","성북구","송파구","양천구","영등포구","용산구","은평구","종로구","중구","중랑구");
$addr['경기'] = array("고양시 덕양구","고양시 일산동구","고양시 일산서구","과천시","광명시","광주시","구리시","군포시","김포시","남양주시","동두천시", "부천시 소사구","부천시 원미구","부천시 오정구","성남시 수정구","성남시 중원구","성남시 분당구","수원시 장안구","수원시 권선구","수원시 팔달구","수원시 영통구","시흥시","안산시 단원구","안산시 상록구","안성시","안양시 만안구","안양시 동안구","오산시","용인시 기흥구","용인시 수지구","용인시 처인구","의왕시","의정부시","이천시","파주시","평택시","하남시","가평군","양주시","양평군","여주시","연천군","포천시","화성시");
$addr['인천'] = array("계양구", "남구", "남동구","동구","부평구","서구","연수구","중구","강화군","옹진군");
$addr['강원'] = array("강릉시", "동해시", "삼척시","속초시","원주시","춘천시","태백시","고성군","양구군","양양군","영월군","인제군","정선군","철원군","평창군","홍천군","화천군","횡성군");
$addr['경남'] = array("거제시", "김해시", "마산시","밀양시","사천시","양산시","진주시","진해시","창원시","통영시","거창군","고성군","남해군","산청군","의령군","창녕군","하동군","함안군","함양군","합천군");
$addr['경북'] = array("경산시", "경주시", "구미시","김천시","문경시","상주시","안동시","영주시","영천시","포항시","고령군","군위군","봉화군","성주군","영덕군","영양군","예천군","울릉군","울진군","의성군","청도군","청송군","칠곡군");
$addr['광주'] = array("광산구", "남구", "동구","북구","서구");
$addr['대전'] = array("대덕구", "동구", "서구","유성구","중구");
$addr['대구'] = array("남구", "달서구", "동구","북구","서구","수성구","중구","달성군");
$addr['부산'] = array("강서구", "금정구", "남구","동구","동래구","부산진구","북구","사상구","사하구","서구","수영구","연제구","영도구","중구","해운대구","기장군");
$addr['울산'] = array("남구", "동구", "북구","중구","울주군");
$addr['전남'] = array("광양시", "나주시", "목포시","순천시","여수시","강진군","고흥군","곡성군","구례군","담양군","무안군","보성군","신안군","영광군","영암군","완도군","장성군","장흥군","진도군","함평군","해남군","화순군");
$addr['전북'] = array("군산시", "김제시", "남원시","익산시","전주시","정읍시","고창군","무주군","부안군","순창군","완주군","임실군","장수군","진안군");
$addr['충남'] = array("공주시", "논산시", "보령시","서산시","아산시", "천안시 서북구", "천안시 동남구", "금산군","당진군","부여군","서천군","연기군","예산군","청양군","태안군","홍성군");
$addr['충북'] = array("제천시","청주시 상당구", "청주시 흥덕구", "청주시 서원구", "청주시 청원구", "충주시","괴산군","단양군","보은군","영동군","옥천군","음성군","진천군");
$addr['세종'] = array("세종시");
$addr['제주'] = array("서귀포시", "제주시","남제주군","북제주군");

 


$reStr = "";

foreach($addr[$item1] as $key => $value){
 $reStr .= "<item><names>".$value."</names></item>\n";
}


echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
echo "<list>\n";
echo $reStr;
echo "</list>";

?>

[/code]

 

 

 

|

댓글 17개

좋네요.. 노가다가 없어져서... 일일히 저거 치는것도 일인데..
2020-03-14 (토) 09:26:34
유용한 정보네요 감사합니다.
감사합니다
이걸 게시판 white쪽에 넣으니 작동하지 않네요?
2020-03-20 (금) 11:52:48
1,2번은 소스에 넣고 3번은 별도로 만들어서 2번에서 불러오는거라 경로 맞춰주면 될듯한데
에러같은 메세지 뜨나요? 어떻게 안되는지요?
네 초보라 처음에 전 3개를 같이 white화일에넣었어 안됐구요
3번을 ajax.sidomake.php로 저장해서 최상위 폴더에 넣으니 작동은하는데
수정을 하면 셀렉터 1,2값이 초기화 되어 있네요
2020-03-20 (금) 12:55:17
게시글 수정들어갔을때는 소스를 직접수정해줘야 하는데... 그게 힘드시다면
간단하게 아래처럼 스크립트 넣으면 선택은 되실듯요

h_addr1, h_addr2 이건 저장한 디비값으로 맞춰야하구요

<?php
if($w=="u"){
?>
<script>
//시도 선택되게
$("select[name='h_addr1'] option[value='<?php echo $h_addr1; ?>']").attr('selected','selected');

//시/군/구 부분 선택되게
$("select[name='h_addr2'] option[value='<?php echo $h_addr2; ?>']").attr('selected','selected');
</script>
<?php
}
?>
먼저 다시한번 감사합니다
위 소스를 적용하니 h_addr1은 수정시 값이 나와있지만
2차 셀렉터인 h_addr2는 역시 선택되지 상태로 나오는군요
2020-03-20 (금) 13:36:55
음~그러시면 위에 스크립트 부분을 아래로 바꿔보세요
소스 젤상단에 h_addr1, h_addr2 값을 먼저 설정 하고요

<script>
item_Search(<?php echo $h_addr1 ?>);
</script>
마지막 부분은 제가 이해를 못했습니다
이정도까지가 제 한계인듯합니다
감사합니다
2020-10-04 (일) 16:15:03
좋은 자료공유 감사합니다.
2021-05-13 (목) 17:01:19
시도, 시군구 셀렉트로 불러오기
동이 없는것 같아요 ㅠㅠ
url : g5_url+"/ajax.sidomake.php",
ajax.sidomake.php ?? board에 적용 할 건데 이건 뭐예요?
2023-10-06 (금) 11:07:00
두번째 h_addr2 부분이 저장후, 불러와서 수정하기에서 자동 선택이 안되는 문제는

파일 하단에
<script>
<?php if($it_4_1){ ?>
item_Search('<?php echo $it_4_1;?>');
$("select[name='it_4_2'] option[value='<?php echo $it_4_2; ?>']").attr('selected','selected');
//$("#it_4_2").val("<?php echo $it_4_2;?>").prop("selected", true);
<? } ?>

</script>

와 같이 따로 분리해서 파일 제일 하단에 넣어주니 되네요.

it_4_1 이 h_addtr1
it_4_2 가 h_addr1 입니다.
2024-08-07 (수) 15:40:48
잘 활용해볼게요~! 감사합니다.

좋은정보 감사합니다.

수정시 2번째 부분 선택 안되는거 저는 이렇게 했습니다.

 

<script>
            <?php if($w=="u"){ ?>
              $(document).ready(function () {
                    item_Search('<?php echo $h_addr1;?>');
              });
            <?php } ?>

        </script>

 

잘안되서 그냥 로드시 수정이면 함수 실행 하는걸로 해두었습니다.

다른분들것 적용이나 이해가 잘안되어서 간단하게 했습니다.

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

그누보드5 팁자료실

2,788건
+
제목 글쓴이 날짜 조회
20-04-05 조회 5,145
20-04-05 조회 6,860
20-04-04 조회 6,047
20-04-03 조회 8,376
20-04-02 조회 6,354
20-04-02 조회 5,943
20-03-29 조회 5,886
20-03-28 조회 7,648
20-03-27 조회 1.4만
20-03-25 조회 1.6만
20-03-24 조회 5,725
20-03-23 조회 6,183
20-03-23 조회 9,970
20-03-22 조회 6,089
20-03-20 조회 5,447
20-03-20 조회 8,153
20-03-19 조회 6,984
20-03-18 조회 7,233
20-03-16 조회 6,036
20-03-15 조회 6,677
20-03-14 조회 5,762
20-03-14 조회 5,635
20-03-14 조회 4,852
20-03-13 조회 8,562
20-03-12 조회 5,752
20-03-12 조회 4,927
20-03-12 조회 5,331
20-03-12 조회 5,543
20-03-12 조회 6,042
20-03-12 조회 5,176