// ajax 수신시 작동
function on_loadedText(oj) {
var res = oj.responseText
// 응답된 값을 res 변수에 저장
var zipsWhole = res.split("&&") /* 응답 형식은 [주소 앞부분|우편번호&&주소 앞부분|우편번호]...
* "&&"로 나눠줌. 배열로 저장 */
var zips = new Array(zipsWhole.length - 1) /* 위의 zipsWhole배열 크기 - 1의 배열 생성. 마지막 && 무시 */
// zips[][0] = 주소 앞부분. zips[][1] = 앞의 주소 앞부분에 대응되는 우편번호
for (var i = 0; i < zipsWhole.length; i++) {
zips[i] = new Array(2)
var temp = zipsWhole[i].split("|")
zips[i][0] = temp[0];
zips[i][1] = temp[1];
}
cleaningOptions(selector) // 새로운 값으로 select의 옵션을 세팅하기 전에 이전 값들을 삭제해줌
setOptions(selector, zips) // zips 배열로 selector의 옵션 세팅
}
function on_loadedText(oj) {
var res = oj.responseText
// 응답된 값을 res 변수에 저장
var zipsWhole = res.split("&&") /* 응답 형식은 [주소 앞부분|우편번호&&주소 앞부분|우편번호]...
* "&&"로 나눠줌. 배열로 저장 */
var zips = new Array(zipsWhole.length - 1) /* 위의 zipsWhole배열 크기 - 1의 배열 생성. 마지막 && 무시 */
// zips[][0] = 주소 앞부분. zips[][1] = 앞의 주소 앞부분에 대응되는 우편번호
for (var i = 0; i < zipsWhole.length; i++) {
zips[i] = new Array(2)
var temp = zipsWhole[i].split("|")
zips[i][0] = temp[0];
zips[i][1] = temp[1];
}
cleaningOptions(selector) // 새로운 값으로 select의 옵션을 세팅하기 전에 이전 값들을 삭제해줌
setOptions(selector, zips) // zips 배열로 selector의 옵션 세팅
}
// ie7 onchange 이벤트 이상으로 만든 함수.
function getZips() {
var addr1 = searchText.value 주소입력값을 받아서 addr1 변수에 ....
// !! 4번째 인수는 ajax 리퀘스트를 처리할 서버 스크립트
sendRequest(on_loadedText, "&addr1=" + addr1, 'GET', ajaZipPosition, true, true) // function sendRequest(callback,data,method,url,async,sload,user,password) - jslb-ajax.js 라이브러리에서 정의 됨...
}
// 옵션 목록 지우기
function cleaningOptions(selBox) {
for (i = selBox.length - 1; i > 0; i--) {
selBox.options[i] = null
}
}
function cleaningOptions(selBox) {
for (i = selBox.length - 1; i > 0; i--) {
selBox.options[i] = null
}
}
// 옵션 목록 세팅
function setOptions(selBox, zipsArray) {
// get current length of select
var sels = selBox
if (sels.options.length == 1) { // cleaningOptions 결과 확인
var i = 1
while (i < zipsArray.length) {
sels.options[i] = new Option(zipsArray[i - 1][1], zipsArray[i - 1][0]) // 새로운 옵션으로 채워주기
i++
}
}
}
// 선택된 옵션으로 우편번호 세팅
function r_addr2zip() {
var from = selector
var to = zipCodeText
selection(from, to)
}
// 텍스트 필드 세팅하기
function selection(selBox, valueToChange) {
valueToChange.value = selBox[selBox.selectedIndex].value
addr1Hidden.value = selBox[selBox.selectedIndex].text
}
- opencode.co.kr -