ASP에서 Ajax 사용 예제
zip_search.asp 소스 코드
======================================================================================
<%
response.charset = "euc-kr"
strConnect="디비 문자열 스트링"
set dbcon = server.CreateObject("ADODB.Connection")
dbCon.Open strConnect
sql = "select distinct sido from dbo.zip_table order by sido"
set rs = dbCon.Execute(sql)
%>
<script language="javascript">
<!--
var xmlHttp;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
/*********************************************************
***** 시도 선택시 활성화 되는 폼 *****
*********************************************************/
function get_gugun_list(sido)
{
createXMLHttpRequest();
xmlHttp.onreadystatechange = get_gugun_list_callback;
xmlHttp.open("GET","zip_gugunlist.asp?sido="+escape(sido), true);
xmlHttp.send();
}
function get_gugun_list_callback()
{
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
if (typeof(document.all.div_gugun) == "object") {
document.all.div_gugun.innerHTML = xmlHttp.responseText;
}
}
}
}
function get_addr_list()
{
var sido, gugun, dong;
sido = document.frmzip.sido.value;
gugun = document.frmzip.gugun.value;
dong = document.frmzip.dong.value;
if (dong.length < 2) return false;
createXMLHttpRequest();
xmlHttp.onreadystatechange = get_addr_list_callback;
xmlHttp.open("GET", "zip_addrlist.asp?sido=" + escape(sido) + "&gugun=" + escape(gugun) + "&dong=" + escape(dong), true);
xmlHttp.send();
}
function get_addr_list_callback()
{
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
if (typeof(document.all.div_zip_list) == "object") {
document.all.div_zip_list.style.display = "";
document.all.div_zip_list.innerHTML = xmlHttp.responseText;
}
else
document.all.div_zip_list.style.display = "none";
}
}
}
//-->
</script>
<style>
input, select, td { font-famliy: tahoma; font-size:9pt}
</style>
<table border="0" width="400">
<form name="frmzip">
<tr>
<td>
<select name="sido" omChange="get_gugun_list(this.value);">
<option value="">시도선택</option>
<%
Do While Not rs.Eof
%>
<option value="<%=rs("sido")%>"><%=rs("sido")%></option>
<%
rs.MoveNext
Loop
rs.close
set rs = nothing
%>
</select>
</td>
<td>
<div id="div_gugun">
<select name="gugun" >
<option value="">구/군선택</option>
</select>
</div>
</td>
<td>
동이름 : <input type="text" name="dong" style="width:50">
<input type="button" value="검색" omClick="get_addr_list();" style="width:40;border-style:solid;border-width:1">
</td>
</tr>
<tr>
<td colspan="3" align="center">
동이름을 입력하시오(2글자 이상)<br>(예:논현, 구의1동, ...)
</td>
</tr>
</form>
</table>
<div id="div_zip_list" style="dislplay:none;overflow-y:scroll; height:300; width:400">
zip_gugunlist.asp 소스 코드
======================================================================================
<%
response.charset = "euc-kr"
sido = request("sido")
strConnect="디비 연결 스트링"
set dbcon = server.CreateObject("ADODB.Connection")
dbCon.Open strConnect
sql = "select distinct gugun from dbo.zip_table where sido = '" & sido & "' order by gugun"
set rs = dbCon.Execute(sql)
%>
<select name="gugun">
<option value="">구/군선택</option>
<%
Do While Not rs.Eof
%>
<option value="<%=rs("gugun")%>"><%=rs("gugun")%></option>
<%
rs.MoveNext
Loop
rs.close
set rs = nothing
%>
</select>
zip_addrlist.asp 소스 코드
======================================================================================
<%
response.charset = "euc-kr"
sido = request("sido")
gugun = request("gugun")
dong = request("dong")
strConnect="디비 문자 연결 스트링"
set dbcon = server.CreateObject("ADODB.Connection")
dbCon.Open strConnect
if sido = "" and gugun = "" Then
sql = "select zipcode, sido + ' ' + gugun + ' ' + dong + ' ' + isnull(bunji, '') as addr from dbo.zip_table where dong like '%" & dong & "%'"
elseif sido <> "" and gugun = "" Then
sql = "select zipcode, sido + ' ' + gugun + ' ' + dong + ' ' + isnull(bunji, '') as addr from dbo.zip_table where sido = '" & sido & "' and dong like '%" & dong & "%'"
elseif sido <> "" and gugun <> "" Then
sql = "select zipcode, sido + ' ' + gugun + ' ' + dong + ' ' + isnull(bunji, '') as addr from dbo.zip_table where sido = '" & sido & "' and gugun = '" & gugun & "' and dong like '%" & dong & "%'"
end if
'response.write sql
set rs = dbCon.Execute(sql)
%>
<table cellpadding="3" cellspacing="3" border="1" width="400">
<%
Do While Not rs.Eof
' addr = rs("sido") & " " & rs("gugun") & " " & rs("dong") & " " & rs("bunji")
%>
<tr>
<td width="100">
<%=rs("zipcode")%>
</td>
<td>
<%=rs("addr")%>
</td>
</tr>
<%
rs.MoveNext
Loop
rs.close
set rs = nothing
%>
</table>