게시판 주소검색 undefined 로 나옵니다. 고수님들 도와주세요.

게시판 주소검색 undefined 로 나옵니다. 고수님들 도와주세요.

QA

게시판 주소검색 undefined 로 나옵니다. 고수님들 도와주세요.

본문

http://hanwoogung.co.kr/bbs/write.php?bo_table=onlineqna <- 주소검색 누르면 우편번호는 들어 가ㅡㄴ데 그 밑으로 undefined로 들어가버려서요  

 

 

소스입니다. 

write.skin.php

 

상단에 

<script src="http://dmaps.daum.net/map_js_init/postcode.v2.js"></script> 

 

<script> 

    function openDaumPostcode() { 

        new daum.Postcode({ 

            oncomplete: function(data) { 

                // 팝업에서 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분. 

                // 우편번호와 주소 정보를 해당 필드에 넣고, 커서를 상세주소 필드로 이동한다. 

                document.getElementById('post1').value = data.postcode1; 

                document.getElementById('post2').value = data.postcode2; 

                document.getElementById('addr').value = data.address1; 

                document.getElementById('addr2').value = data.address2; 

              // document.getElementById('jibeon').value = data.relatedAddress; 

                document.getElementById('addr2').focus(); 

            } 

        }).open(); 

    } 

</script>

 

하단 --------------------------------------------------------------

        <tr>

            <th scope="row">창업희망지역<?php if ($config['cf_req_addr']) { ?><strong class="sound_only">필수</strong><?php }  ?></th>

            <td>

               <label for="reg_mb_zip" class="sound_only">우편번호<?php echo $config['cf_req_addr']?'<strong class="sound_only"> 필수</strong>':''; ?></label>

                <input type="text" name="post1" id="post1" value="<?php echo $post1 ?>"   class="haninput"  size="20" maxlength="6">-

<input type="text" name="post2" id="post2" value="<?php echo $post2 ?>"   class="haninput" size="20" maxlength="6"> 

<button type="button" class="hanbtn_gray" onclick="openDaumPostcode();">주소 검색</button><br><br>  

<input type="text" name="addr1" id="addr" value="<?php echo $addr1 ?>" <?php echo $config['cf_req_addr']?"required":""; ?> required class="haninput frm_address <?php echo $config['cf_req_addr']?"required":""; ?>" size="53" >

                <label for="reg_addr1">기본주소<?php echo $config['cf_req_addr']?'<strong class="sound_only"> 필수</strong>':''; ?></label><br><br>

                

<input type="text" name="addr2"  id="addr2" required value="<?php echo $addr2 ?>" class="haninput frm_address" size="53">

                <label for="reg_addr2">상세주소</label>  

 

            </td>

        </tr>

 

 

 

common.js ------------------

var win_zip = function(frm_name, frm_zip, frm_addr1, frm_addr2, frm_addr3, frm_jibeon) {

    if(typeof daum === 'undefined'){

        alert("다음 우편번호 postcode.v2.js 파일이 로드되지 않았습니다.");

        return false;

    }

 

    var zip_case = 2;   //0이면 레이어, 1이면 페이지에 끼워 넣기, 2이면 새창

 

    var complete_fn = function(data){

        // 팝업에서 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분.

 

        // 각 주소의 노출 규칙에 따라 주소를 조합한다.

        // 내려오는 변수가 값이 없는 경우엔 공백('')값을 가지므로, 이를 참고하여 분기 한다.

        var fullAddr = ''; // 최종 주소 변수

        var extraAddr = ''; // 조합형 주소 변수

 

        // 사용자가 선택한 주소 타입에 따라 해당 주소 값을 가져온다.

        if (data.userSelectedType === 'R') { // 사용자가 도로명 주소를 선택했을 경우

            fullAddr = data.roadAddress;

 

        } else { // 사용자가 지번 주소를 선택했을 경우(J)

            fullAddr = data.jibunAddress;

        }

 

        // 사용자가 선택한 주소가 도로명 타입일때 조합한다.

        if(data.userSelectedType === 'R'){

            //법정동명이 있을 경우 추가한다.

            if(data.bname !== ''){

                extraAddr += data.bname;

            }

            // 건물명이 있을 경우 추가한다.

            if(data.buildingName !== ''){

                extraAddr += (extraAddr !== '' ? ', ' + data.buildingName : data.buildingName);

            }

            // 조합형주소의 유무에 따라 양쪽에 괄호를 추가하여 최종 주소를 만든다.

            extraAddr = (extraAddr !== '' ? ' ('+ extraAddr +')' : '');

        }

 

        // 우편번호와 주소 정보를 해당 필드에 넣고, 커서를 상세주소 필드로 이동한다.

        var of = document[frm_name];

 

        of[frm_zip].value = data.zonecode;

 

        of[frm_addr1].value = fullAddr;

        of[frm_addr3].value = extraAddr;

 

        if(of[frm_jibeon] !== undefined){

            of[frm_jibeon].value = data.userSelectedType;

        }

 

        of[frm_addr2].focus();

    };

 

    switch(zip_case) {

        case 1 :    //iframe을 이용하여 페이지에 끼워 넣기

            var daum_pape_id = 'daum_juso_page'+frm_zip,

                element_wrap = document.getElementById(daum_pape_id),

                currentScroll = Math.max(document.body.scrollTop, document.documentElement.scrollTop);

            if (element_wrap == null) {

                element_wrap = document.createElement("div");

                element_wrap.setAttribute("id", daum_pape_id);

                element_wrap.style.cssText = 'display:none;border:1px solid;left:0;width:100%;height:300px;margin:5px 0;position:relative;-webkit-overflow-scrolling:touch;';

                element_wrap.innerHTML = '<img src="//i1.daumcdn.net/localimg/localimages/07/postcode/320/close.png" id="btnFoldWrap" style="cursor:pointer;position:absolute;right:0px;top:-21px;z-index:1" class="close_daum_juso" alt="접기 버튼">';

                jQuery('form[name="'+frm_name+'"]').find('input[name="'+frm_addr1+'"]').before(element_wrap);

                jQuery("#"+daum_pape_id).off("click", ".close_daum_juso").on("click", ".close_daum_juso", function(e){

                    e.preventDefault();

                    jQuery(this).parent().hide();

                });

            }

 

            new daum.Postcode({

                oncomplete: function(data) {

                    complete_fn(data);

                    // iframe을 넣은 element를 안보이게 한다.

                    element_wrap.style.display = 'none';

                    // 우편번호 찾기 화면이 보이기 이전으로 scroll 위치를 되돌린다.

                    document.body.scrollTop = currentScroll;

                },

                // 우편번호 찾기 화면 크기가 조정되었을때 실행할 코드를 작성하는 부분.

                // iframe을 넣은 element의 높이값을 조정한다.

                onresize : function(size) {

                    element_wrap.style.height = size.height + "px";

                },

                width : '100%',

                height : '100%'

            }).embed(element_wrap);

 

            // iframe을 넣은 element를 보이게 한다.

            element_wrap.style.display = 'block';

            break;

        case 2 :    //새창으로 띄우기

            new daum.Postcode({

                oncomplete: function(data) {

                    complete_fn(data);

                }

            }).open();

            break;

        default :   //iframe을 이용하여 레이어 띄우기

            var rayer_id = 'daum_juso_rayer'+frm_zip,

                element_layer = document.getElementById(rayer_id);

            if (element_layer == null) {

                element_layer = document.createElement("div");

                element_layer.setAttribute("id", rayer_id);

                element_layer.style.cssText = 'display:none;border:5px solid;position:fixed;width:300px;height:460px;left:50%;margin-left:-155px;top:50%;margin-top:-235px;overflow:hidden;-webkit-overflow-scrolling:touch;z-index:10000';

                element_layer.innerHTML = '<img src="//i1.daumcdn.net/localimg/localimages/07/postcode/320/close.png" id="btnCloseLayer" style="cursor:pointer;position:absolute;right:-3px;top:-3px;z-index:1" class="close_daum_juso" alt="닫기 버튼">';

                document.body.appendChild(element_layer);

                jQuery("#"+rayer_id).off("click", ".close_daum_juso").on("click", ".close_daum_juso", function(e){

                    e.preventDefault();

                    jQuery(this).parent().hide();

                });

            }

 

            new daum.Postcode({

                oncomplete: function(data) {

                    complete_fn(data);

                    // iframe을 넣은 element를 안보이게 한다.

                    element_layer.style.display = 'none';

                },

                width : '100%',

                height : '100%'

            }).embed(element_layer);

 

            // iframe을 넣은 element를 보이게 한다.

            element_layer.style.display = 'block';

    }

}

 

입니다. 

 

 

 

 

이 질문에 댓글 쓰기 :

답변 1

document.getElementById('addr').value = data.address1; 이 부분을 다음과 같이 바꿔보세요.


<script>
function openDaumPostcode() {
   var buildingName = ""; // 이 부분 추가함
   new daum.Postcode({
      oncomplete: function(data) {
          // 팝업에서 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분.
          // 우편번호와 주소 정보를 해당 필드에 넣고, 커서를 상세주소 필드로 이동한다.
         document.getElementById('post1').value = data.postcode1;
         document.getElementById('post2').value = data.postcode2;
         //document.getElementById('addr').value = data.address1;  <-- 이부분 아래와 같이 수정
         if(data.buildingName)
             buildingName = " (" + data.buildingName + ")";
         document.getElementById('addr').value = data.address + buildingName;
         //document.getElementById('jibeon').value = data.relatedAddress;
         document.getElementById('addr2').focus();
      }
   }).open();
}
</script>

 

참고 사이트 : http://postcode.map.daum.net/guide 

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

회원로그인

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