// odaeri/js/addressSelector.js var workForm=""; var destAddrssFull=""; $(document).ready( function() { /******************************* 주소-아톰 셀렉터 대응 액션 ********************************/ // Address Atom Selector 클릭시 액션.. // 현재단계에서 선택된 "); $("#dongRiAtomSelectBox").empty(); $("#pointAtomSelectBox").empty(); // selecrt options 추가 $.each(subAddrArr, function() { $("#cityKuEupAtomSelectBox") .append(new Option(this.name,this.geoId )); }); // $("#deptAddressSelectForm .cityKuEupSelectBox").selectmenu('refresh', true); // $("#cityKuEupAtomSelectBox").selectmenu('refresh', true); }); // .cityKuEupSelectBox 변경시 액션.. $(document).off('change', '.cityKuEupSelectBox').on('change', '.cityKuEupSelectBox', function() { // sessionStorage 에 선택 아톰 보관 sessionStorage.setItem( "destCityKuEupAtomSelected", $("option:selected", this).text() ); sessionStorage.setItem( "destCityKuEupAtomSelectedGeoId", $("option:selected", this).val() ); // AddressSelector 가 독립적으로 작동되므로.. 이런 방법이 통하지 않는다. // selecrt options 리셋 $("#dongRiAtomSelectBox").empty().append(""); $("#pointAtomSelectBox").empty(); // 서버에 Ajax 요청 // /ajax/subAddr.php?cate=city&geoId=$geoId var data = "cate=city&geoId="+$(this).val(); $.getJSON("/ajax/subAddr.php?"+data+"&callback=?", function(jsonObj){ $.each(jsonObj, function() { $("#dongRiAtomSelectBox").append(new Option(this.name,this.geoId )); }); // $("#dongRiAtomSelectBox").selectmenu('refresh', true); } ); }); // .dongRiSelectBox 변경시 액션.. $(document).off('change', '.dongRiSelectBox').on('change', '.dongRiSelectBox', function() { // sessionStorage 에 선택 아톰 보관 sessionStorage.setItem( "destDongRiAtomSelected", $("option:selected", this).text() ); sessionStorage.setItem( "destDongRiAtomSelectedGeoId", $("option:selected", this).val() ); $("#pointAtomSelectBox").empty().append(""); // 서버에 Ajax 요청 // /ajax/subAddr.php?cate=dongRi&geoId=$geoId var data = "cate=dongRi&geoId="+$(this).val(); $.getJSON("/ajax/subAddr.php?"+data+"&callback=?", function(jsonObj){ $.each(jsonObj, function() { $("#pointAtomSelectBox").append(new Option(this.name,this.geoId )); }); // $("#pointAtomSelectBox").selectmenu('refresh', true); } ); }); // .pointSelectBox 변경시 액션.. $(document).off('change', '.pointSelectBox').on('change', '.pointSelectBox', function() { // 직접입력 선택시... if( $(this).val()=="0" ) { $("#userInputPointAtom").slideDown('slow'); } // sessionStorage 에 선택 아톰 보관 else { $("#userInputPointAtom").slideUp('slow'); sessionStorage.setItem( "destPointAtomSelected", $("option:selected", this).text() ); sessionStorage.setItem( "destPointAtomSelectedPointId", $("option:selected", this).val() ); } console.log("session storage"); for (i = 0; i < sessionStorage.length; i++) { console.log(sessionStorage.key(i) + "=[" + sessionStorage.getItem(sessionStorage.key(i)) + "]"); } }); // 사용자입력 포인트명 blur() 대응 액션.. $("#userInputPointAtom").blur( function() { sessionStorage.setItem( "destPointAtomSelected", $(this).val() ); }); /******************************* END 주소-아톰 셀렉터 대응 액션 ********************************/ /******************************* "선택완료" 버튼 클릭 대응 액션 ********************************/ // "선택완료" 버튼 클릭시 액션... $("#addressSelectDoneBtn").click( function(e) { e.preventDefault(); // 현재 요청중인 부모 Form 을 확인... workForm = $("#addressSelectorForm").find("input[name='workForm']").val(); console.log("#addressSelectDoneBtn clicked!! for form: "+workForm); // 디스플레이용 풀 어드레스 스트링을 만든다. destAddrssFull = sessionStorage.getItem('destProvinceAtomSelected')+' '+ sessionStorage.getItem('destCityKuEupAtomSelected')+' '+ sessionStorage.getItem('destDongRiAtomSelected'); // 폼 요소의 주소 input 필드값들을 업데이트 updateAddressInputsFromStorage(); // 촤면 출력 주소 요소들을 확보된 스트링으로 fill up fillAddressElementsFromStorage(); // display on $(".destinationAddress").css("display","block"); $(".destinationPointNameText").text( sessionStorage.getItem('destPointAtomSelected') ); $(".destinationFullAddressText").text(destAddrssFull); // formA element 들올 formB 로 복사한다... 디저블 됨 //form2form ( $("#addressSelectorForm"), $("#orderMainForm") ); // 부모 Form ID 에 따라 원래 요청했던 페이지로 page 이동 if(workForm=="odaeriTopSeaechForm" ) $.mobile.changePage('#LandingPageMain'); else if(workForm=="OrderMainForm") $.mobile.changePage('#OrderMain'); }); /******************************* END "선택완료" 버튼 클릭 대응 액션 ********************************/ }); // 화면의 주소 요소들을 확보한 주소로 채워넣어준다. // 역기능이 되는 펑션도 필요할 것 같다. // 페이지 혹은 Html 문서이동이 발생해도, 검색-작성된 출발/도착지 데이터는 그대로 보존될 수 있도록 배려해주자. function fillAddressElementsFromStorage() { // #OrderMain : #destPointSelectedStr // LandingPage : .destinationPointNameText $("#destPointSelectedStr", ".destinationPointNameText").text( sessionStorage.getItem('destPointAtomSelected') ); $("#destAddressSelectedStr", ".destinationFullAddressText").text( destAddrssFull ); } // form 주소 input 필드 값에 확보된 주소 스트링을 할당해준다. function updateAddressInputsFromStorage() { if(workForm=="OrderMainForm") { // #OrderMainForm 값 업데이트 $("#orderMainDestGeoId").val( $("#dongRiAtomSelectBox").val() ); $("#orderMainDestPointName").val( sessionStorage.getItem( "destPointAtomSelected") ); $("#orderMainDestPointId").val( $("#pointAtomSelectBox").val() ); $("#orderMainDestFullAddr").val( destAddrssFull ); } else if(workForm=="odaeriTopSeaechForm") { // #odaeriTopSeaechForm 값 업데이트 $("#destInputFullStr").val(destAddrssFull); $("#destPointNameStr").val(sessionStorage.getItem('destPointAtomSelected')); // $("#destInputFullStr").val( destAddrssFull ); // $("#destGeoId").val( sessionStorage.getItem('destGeoId') ); $("#destGeoId").val( $("#dongRiAtomSelectBox").val() ); // console.log("updateAddressInputsFromStorage 펑션에서.... "+destAddrssFull); // console.log("updateAddressInputsFromStorage 펑션에서.... "+sessionStorage.getItem('destGeoId') ); // console.log("updateAddressInputsFromStorage 펑션에서.... "+$("#dongRiAtomSelectBox").val()); } //console.log("updateAddressInputsFromStorage 펑션에서.... "+workForm); } // province 한글을 약속된 영문으로 바꿔 리턴한다. function engProvince(prov) { if(prov=="서울") return "seoul"; else if(prov=="경기") return "kyungki"; else if(prov=="인천") return "incheon"; else if(prov=="대전") return "daejeon"; else if(prov=="충북") return "chungbuk"; else if(prov=="충남") return "chungnam"; else if(prov=="세종") return "sejong"; else if(prov=="강원") return "kangwon"; else if(prov=="대구") return "daeku"; else if(prov=="울산") return "ulsan"; else if(prov=="부산") return "busan"; else if(prov=="경북") return "kyungbuk"; else if(prov=="경남") return "kyungnam"; else if(prov=="광주") return "kwangju"; else if(prov=="전북") return "chunbuk"; else if(prov=="전남") return "chunnam"; else if(prov=="제주") return "jeju"; }