Extra Form
PHP PHP 7.3
CMS XpressEngine1
<div id="map" style="width:100%;height:350px;"></div> <script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=발급받은 APP KEY를 사용하세요&libraries=services"></script> <script> var mapContainer = document.getElementById('map'), // 지도를 표시할 div mapOption = { center: new kakao.maps.LatLng(33.450701, 126.570667), // 지도의 중심좌표 level: 3 // 지도의 확대 레벨 }; // 지도를 생성합니다 var map = new kakao.maps.Map(mapContainer, mapOption); // 주소-좌표 변환 객체를 생성합니다 var geocoder = new kakao.maps.services.Geocoder(); // 주소로 좌표를 검색합니다 geocoder.addressSearch('제주특별자치도 제주시 첨단로 242', function(result, status) { // 정상적으로 검색이 완료됐으면 if (status === kakao.maps.services.Status.OK) { var coords = new kakao.maps.LatLng(result[0].y, result[0].x); // 결과값으로 받은 위치를 마커로 표시합니다 var marker = new kakao.maps.Marker({ map: map, position: coords }); // 인포윈도우로 장소에 대한 설명을 표시합니다 var infowindow = new kakao.maps.InfoWindow({ content: '<div style="width:150px;text-align:center;padding:6px 0;">우리회사</div>' }); infowindow.open(map, marker); // 지도의 중심을 결과값으로 받은 위치로 이동시킵니다 map.setCenter(coords); } }); </script>

 

 

 

geocoder.addressSearch('주소', function(result, status) 의 주소 부분에서 확장변수로 받은 주소를 입력하고자합니다.

 

확장변수(eid address) 한국주소(zip)으로 입력받은 값을 출력하기위해 {$oDocument->getExtraEidValue('address')[1];}를 입력하면

 

우편번호 숫자의 일부만 나오게되고 간단주소가 출력이 안되는데 방법이 있을지 문의드립니다.

 

확장변수는 한줄 입력칸(text)으로 입력받을때는 {$oDocument->getExtraEidValue('address')} 으로 출력이됩니다만 글작성시 확장변수를 한국주소(zip)로 입력받기때문에 {$oDocument->getExtraEidValue('address')[1];} 같은 형식으로 해야할텐데 출력이 제대로 되지 않아서 문의드립니다.

 

사이트는 공개하지 못하는점 양해바랍니다.

추가로 필요한 정보가 있을경우 댓글 남겨드리면 답변드리겠습니다.

 

 

  • profile

    geocoder.addressSearch('제주특별자치도 제주시 첨단로 242', function(result, status) {

    이부분이 관건인걸로 보이는데요, 제주특별자치도 제주시 첨단로 242 부분에 주소가 들어가면 됩니다.

     

    참고로 템플릿 문법은 따옴표를 붙여주지 않으므로 {$var} 형태로 넣으면

     

    geocoder.addressSearch(입력한 주소, function(result, status) {

    위 코드처럼 되며 오동작할수 있습니다. 반드시 "{$var}" 혹은 '{$var}'로 사용해야

     

    geocoder.addressSearch("입력한 주소", function(result, status) {

    이렇게 이스케이프가 됩니다.

     

    참고로 공지사항 2번에도 있습니다만... 정보를 꽁꽁 감추시면 아무도 명확한 답변을 드릴 수 없습니다.

    사정상 주소 공개가 불가능한경우 https://xetown.com/request 제작의뢰를 활용할수 있습니다. 

  • profile profile
    • form
    • 질문기여자
    네 답변감사합니다.
    확장변수 한국지도(zip)의 값에서 우편번호를 제외한 기본 주소정보만 출력하려면 함수를 어떻게 입력해야할까요?
    {$oDocument->getExtraEidValue('address')[1];}는 우편번호의 2번째 값을 출력합니다.
    {$oDocument->getExtraEidValue('address')}만 입력하였을때는 우편번호부터 주소를 전체 다 출력합니다.
    방법이 없는걸까요?
  • profile profile
    [1]을 [2]나 [3]으로 변경해보셨나요?
  • profile profile
    • form
    • 질문기여자
    변경하면 한칸씩 뒷자리의 한자리수를 출력합니다.
  • profile profile
    • form
    • 질문기여자
    [1]은 우편번호부터 2번째자리수를
    [2]는 3번째자리수를
    [9]는 10번째자리수를 출력합니다.
  • profile profile
    혹시 디버깅이 가능하시면 $oDocument->getExtraEidValue('address') 에 정보가 어덯게 담겨져있는지 직접 오브젝트의 항목을 확인해보시면 좋을 것 같습니다.

    사이트는 좀 깨지더라도..
    {@
    var_dump($oDocument->getExtraEidValue('address'));
    exit();
    }

    이렇게 해두시면 html속이나 어딘가에 오브젝트가 뜨긴하거든요.
    기왕이면 debugPrint이용하시는 방법을 활용해보시면 좋을 것 같습니다!
  • profile profile
    03906 서울 마포구 가양대로 114 (서울 마포구 상암동 442-3) 한전사장실 (상암동, 한국전력공사)

    확인해보니 이렇게 들어있네요.(한전사장실은 임의로 넣은... 값입니다)
    한국주소라면 우편번호 5자리는 고정일테니 앞 6글자를 제외하고, ( 기준으로 나머지를 나누면

    서울 마포구 가양대로 114, 서울 마포구 상암동 442-3) 한전사장실 , 상암동, 한국전력공사) 이렇게 나눠질텐데 이중 첫번째 값만 사용하면 될것 같습니다.
  • profile profile
    • form
    • 질문기여자
    그 방법이 {$oDocument->getExtraEidValue('address')[1];} 이게 아닌가요?
  • profile profile

    네. 아닙니다.

    단순 문자열을 배열처럼 사용하면 그냥 n번째 글자만 얻을수 있습니다.

     

    $a = "abcde"; 일때 $a[1]은 두번째 글자인 b인 식입니다.

  • profile profile
    • form
    • 질문기여자
    계속해서 도움주셔서 감사합니다.
    직접 해결해보겠습니다.^^
    혹시 XE,라이믹스 공부해보고싶은데 자료나 사이트가 있을까요?