http://sir.co.kr/bbs/board.php?bo_table=pg_qa&wr_id=4055
이 글을 보고 간단히 만들어 봤습니다.
index.html
<!DOCTYPE html>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<title>Real-time Address</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link href="stylesheet.css" media="screen" rel="stylesheet" type="text/css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
<script src="application.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<select>
<option value="">광역시/도</option>
</select>
<select>
<option value="">시/도/군</option>
</select>
<select>
<option value="">읍/면/동</option>
</select>
</div>
</body>
</html>
stylesheet.css
body {
font-size: 12px;
background: #FFF;
color: #333;
margin: 0;
}
#content {
margin: 30px;
padding: 20px;
background: #7CF;
}
application.js
$(function() {
var uniqueId = 0;
function ajaxYqlWithJson(options) {
var callbackName = 'my_yql_callback_' + ++uniqueId;
window[callbackName] = options.callback;
var yql = 'SELECT * FROM json WHERE url="' + encodeURIComponent(options.url) + '"';
$.ajax({
url: 'http://query.yahooapis.com/v1/public/yql?q=' + yql +
'&format=json&callback=' + callbackName,
dataType: 'script',
complete: function() {
delete window[callbackName];
}
});
}
function createSelectCallback(index) {
return function(data) {
var select = $('select').eq(index);
$(data.query.results.result.subRegion).each(function(i, region) {
$('<option></option>').attr('value', region.code).text(region.name)
.appendTo(select);
});
};
}
function clearSelect(select) {
select.html(select.children().first());
}
function ajaxGetRegions(options) {
var level = options.level;
var code = options.code;
if (code && level <= 8) {
ajaxYqlWithJson({
url: 'http://map.naver.com/common2/getBRegionByCodeAndLevel.nhn' +
'?level=' + level + '&code=' + code,
callback: options.callback
});
}
}
$('select').each(function(index, select) {
$(select).change(function() {
for (var i = index + 1; i < $('select').length; i++) {
clearSelect($('select').eq(i));
}
ajaxGetRegions({
level: 2 + 3 * (index + 1),
code: $(this).val(),
callback: createSelectCallback(index + 1)
})
});
});
ajaxYqlWithJson({
url: 'http://map.naver.com/common2/getBRegionByCodeAndLevel.nhn?level=2',
callback: createSelectCallback(0)
});
});
이 글을 보고 간단히 만들어 봤습니다.
index.html
<!DOCTYPE html>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<title>Real-time Address</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link href="stylesheet.css" media="screen" rel="stylesheet" type="text/css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
<script src="application.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<select>
<option value="">광역시/도</option>
</select>
<select>
<option value="">시/도/군</option>
</select>
<select>
<option value="">읍/면/동</option>
</select>
</div>
</body>
</html>
stylesheet.css
body {
font-size: 12px;
background: #FFF;
color: #333;
margin: 0;
}
#content {
margin: 30px;
padding: 20px;
background: #7CF;
}
application.js
$(function() {
var uniqueId = 0;
function ajaxYqlWithJson(options) {
var callbackName = 'my_yql_callback_' + ++uniqueId;
window[callbackName] = options.callback;
var yql = 'SELECT * FROM json WHERE url="' + encodeURIComponent(options.url) + '"';
$.ajax({
url: 'http://query.yahooapis.com/v1/public/yql?q=' + yql +
'&format=json&callback=' + callbackName,
dataType: 'script',
complete: function() {
delete window[callbackName];
}
});
}
function createSelectCallback(index) {
return function(data) {
var select = $('select').eq(index);
$(data.query.results.result.subRegion).each(function(i, region) {
$('<option></option>').attr('value', region.code).text(region.name)
.appendTo(select);
});
};
}
function clearSelect(select) {
select.html(select.children().first());
}
function ajaxGetRegions(options) {
var level = options.level;
var code = options.code;
if (code && level <= 8) {
ajaxYqlWithJson({
url: 'http://map.naver.com/common2/getBRegionByCodeAndLevel.nhn' +
'?level=' + level + '&code=' + code,
callback: options.callback
});
}
}
$('select').each(function(index, select) {
$(select).change(function() {
for (var i = index + 1; i < $('select').length; i++) {
clearSelect($('select').eq(i));
}
ajaxGetRegions({
level: 2 + 3 * (index + 1),
code: $(this).val(),
callback: createSelectCallback(index + 1)
})
});
});
ajaxYqlWithJson({
url: 'http://map.naver.com/common2/getBRegionByCodeAndLevel.nhn?level=2',
callback: createSelectCallback(0)
});
});
댓글 6개
14년 전
서버 없이 돌아가는 코드를 만들기 위해 네이버 지도가 사용하는 API를 몰래 썼습니다.
실제로 서비스하실 땐 저 부분을 바꿔줘야겠죠? 그러면 YQL을 쓸 이유도 없구요.
실제로 서비스하실 땐 저 부분을 바꿔줘야겠죠? 그러면 YQL을 쓸 이유도 없구요.
14년 전
내공이 상당하신 분 같네요^^
좋은 팁 자주 올려주시면 감사하겠습니다~
좋은 팁 자주 올려주시면 감사하겠습니다~
14년 전
짧은 코드안에 jquery의 많은 부분이 심플하게 구성되어 있네요.
jquery 공부하는 입장에서도 좋은 소스같습니다.
감사합니다.
jquery 공부하는 입장에서도 좋은 소스같습니다.
감사합니다.
행복한남자
14년 전
감사합니다...^^
14년 전
서버에 올려놨습니다. 어떤 건지 결과물부터 보고 싶은 분은... http://j.mp/vRyafl
13년 전
와우~~ 대단하시네요 ....
멋지네요...
멋지네요...
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 8030 | 9년 전 | 336 | ||
| 8029 | 9년 전 | 278 | ||
| 8028 | 9년 전 | 245 | ||
| 8027 | 9년 전 | 260 | ||
| 8026 | 9년 전 | 299 | ||
| 8025 | 9년 전 | 359 | ||
| 8024 | 9년 전 | 323 | ||
| 8023 | 9년 전 | 377 | ||
| 8022 | 9년 전 | 303 | ||
| 8021 | 9년 전 | 301 | ||
| 8020 | 9년 전 | 297 | ||
| 8019 | 9년 전 | 326 | ||
| 8018 | 9년 전 | 422 | ||
| 8017 | 9년 전 | 522 | ||
| 8016 | 9년 전 | 311 | ||
| 8015 | 9년 전 | 373 | ||
| 8014 | 9년 전 | 310 | ||
| 8013 | 9년 전 | 218 | ||
| 8012 | 9년 전 | 235 | ||
| 8011 | 9년 전 | 433 | ||
| 8010 | 9년 전 | 286 | ||
| 8009 | 9년 전 | 272 | ||
| 8008 | 9년 전 | 274 | ||
| 8007 | 9년 전 | 413 | ||
| 8006 | 9년 전 | 448 | ||
| 8005 |
|
9년 전 | 950 | |
| 8004 | 9년 전 | 331 | ||
| 8003 | 9년 전 | 397 | ||
| 8002 | 9년 전 | 307 | ||
| 8001 |
|
9년 전 | 650 | |
| 8000 | 9년 전 | 397 | ||
| 7999 | 9년 전 | 359 | ||
| 7998 | 9년 전 | 410 | ||
| 7997 | 9년 전 | 295 | ||
| 7996 | 9년 전 | 526 | ||
| 7995 | 9년 전 | 427 | ||
| 7994 | 9년 전 | 268 | ||
| 7993 | 9년 전 | 351 | ||
| 7992 | 9년 전 | 491 | ||
| 7991 | 9년 전 | 229 | ||
| 7990 | 9년 전 | 253 | ||
| 7989 | 9년 전 | 285 | ||
| 7988 | 9년 전 | 709 | ||
| 7987 | 9년 전 | 400 | ||
| 7986 | 9년 전 | 397 | ||
| 7985 | 9년 전 | 483 | ||
| 7984 | 9년 전 | 416 | ||
| 7983 | 9년 전 | 636 | ||
| 7982 | 9년 전 | 498 | ||
| 7981 | 9년 전 | 445 | ||
| 7980 | 9년 전 | 470 | ||
| 7979 | 9년 전 | 442 | ||
| 7978 | 9년 전 | 422 | ||
| 7977 | 9년 전 | 355 | ||
| 7976 | 9년 전 | 826 | ||
| 7975 | 9년 전 | 348 | ||
| 7974 | 9년 전 | 375 | ||
| 7973 | 9년 전 | 579 | ||
| 7972 | 9년 전 | 367 | ||
| 7971 | 9년 전 | 432 | ||
| 7970 | 9년 전 | 281 | ||
| 7969 | 9년 전 | 527 | ||
| 7968 | 9년 전 | 366 | ||
| 7967 | 9년 전 | 347 | ||
| 7966 | 9년 전 | 344 | ||
| 7965 |
|
9년 전 | 999 | |
| 7964 | 9년 전 | 386 | ||
| 7963 | 9년 전 | 372 | ||
| 7962 | 9년 전 | 352 | ||
| 7961 |
전갈자리남자
|
9년 전 | 494 | |
| 7960 | 9년 전 | 944 | ||
| 7959 | 9년 전 | 536 | ||
| 7958 | 9년 전 | 391 | ||
| 7957 | 9년 전 | 350 | ||
| 7956 | 9년 전 | 361 | ||
| 7955 | 9년 전 | 420 | ||
| 7954 | 9년 전 | 347 | ||
| 7953 | 9년 전 | 407 | ||
| 7952 | 9년 전 | 327 | ||
| 7951 | 9년 전 | 471 | ||
| 7950 | 9년 전 | 366 | ||
| 7949 | 9년 전 | 372 | ||
| 7948 | 9년 전 | 312 | ||
| 7947 | 9년 전 | 913 | ||
| 7946 | 9년 전 | 402 | ||
| 7945 | 9년 전 | 367 | ||
| 7944 | 9년 전 | 377 | ||
| 7943 | 9년 전 | 353 | ||
| 7942 | 9년 전 | 387 | ||
| 7941 | 9년 전 | 369 | ||
| 7940 | 9년 전 | 857 | ||
| 7939 | 9년 전 | 309 | ||
| 7938 | 9년 전 | 356 | ||
| 7937 | 9년 전 | 259 | ||
| 7936 | 9년 전 | 862 | ||
| 7935 | 9년 전 | 403 | ||
| 7934 | 9년 전 | 379 | ||
| 7933 | 9년 전 | 456 | ||
| 7932 | 9년 전 | 427 | ||
| 7931 | 9년 전 | 488 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기