AJAX ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์
์๋ ์์ ๋ AJAX๋ฅผ ์ด์ฉํด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฝ์ด์จ ์๋ฃ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ์ ๋ณด์ฌ์ค๋๋ค.
์์
form ํ๊ทธ๊ฐ ๋จนํ์ง ์๋ ๊ด๊ณ๋ก ์์ ๋ ์ค์ตํ๊ธฐ ๋ฒํผ์ ๋๋ฌ์ W3Schools๋ก ๊ฐ์
์ ํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
์์ ์ค๋ช - showCustomer() ํจ์
์ฌ์ฉ์๊ฐ ๋๋๋ค์ด ๋ฆฌ์คํธ์์ ๊ณ ๊ฐ์ ์ ํํ๋ฉด, "showCustomer()" ํจ์๊ฐ ํธ์ถ๋์ด ์คํ๋ฉ๋๋ค. ์ด ํจ์๋ "onchange" ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ํธ์ถ๋๋๋ก ๋์ด์์ต๋๋ค.
showCustomer ํจ์ ์์ค ์ฝ๋
function showCustomer(str) {
var xhttp;
if (str == "") {
document.getElementById("txtHint").innerHTML = "";
return;
}
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
document.getElementById("txtHint").innerHTML = xhttp.responseText;
}
};
xhttp.open("GET", "getcustomer.asp?q="+str, true);
xhttp.send();
}
showCustomer() ํจ์๋ ์๋์ ๊ฐ์ ์์ ์ ํฉ๋๋ค.
- customer๊ฐ ์ ํ์ด ๋์๋์ง ๊ฒ์ฌํฉ๋๋ค.
- XMLHttpRequest ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค.
- ์๋ฒ๋ก๋ถํฐ ์๋ต์ ๋ฐ๊ณ ๋์ ์คํ๋ ํจ์๋ฅผ ์ ์ํฉ๋๋ค.
- ์๋ฒ์ ์๋ ํ์ผ๋ก ์์ฒญ์ ๋ณด๋ ๋๋ค.
- ์์ฒญ์ ๋ณด๋ผ ๋ ํ๋ผ๋ฏธํฐ "q" ์ ๋๋๋ค์ด ๋ฆฌ์คํธ์์ ์ฝ์ด์จ str์ URL์ ์ถ๊ฐํ์ต๋๋ค.
AJAX Server Page
์ ์์ ์์ ์ฌ์ฉ๋ ์๋ฒํ์ด์ง๋ "getcustomer.asp"์ ๋๋ค.
์๋ฒ ํ์ด์ง ํ์ผ์ PHP, JSP์ ๊ฐ์ ๋ค๋ฅธ ์๋ฒ ์ธ์ด๋ก๋ ๊ตฌํํ ์ ์์ต๋๋ค.
PHP๋ก ๊ตฌํํ ๋์ผํ ๊ธฐ๋ฅ์ ์์ค ๋ณด๊ธฐ
"getcustomer.asp" ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๋ณด๋ฅผ ์กฐํํ๊ณ ์ฝ์ด์จ ์ ๋ณด๋ฅผ HTML ํ ์ด๋ธ์ ๋ฃ๋ ๊ธฐ๋ฅ์ ํฉ๋๋ค.
<%
response.expires=-1
sql="SELECT * FROM CUSTOMERS WHERE CUSTOMERID="
sql=sql & "'" & request.querystring("q") & "'"
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open(Server.Mappath("/datafolder/northwind.mdb"))
set rs=Server.CreateObject("ADODB.recordset")
rs.Open sql,conn
response.write("<table>")
do until rs.EOF
for each x in rs.Fields
response.write("<tr><td><b>" & x.name & "</b></td>")
response.write("<td>" & x.value & "</td></tr>")
next
rs.MoveNext
loop
response.write("</table>")
%>
์, ํฐ ๊ทธ๋ฆผ์ด ๊ทธ๋ ค์ง๋์?
์ ๋ฆฌ๋ฅผ ํ๋ฒ ํด๋๋ฆฌ์๋ฉด,
1. ๋๋๋ค์ด ๋ฆฌ์คํธ์์ ํญ๋ชฉ์ ์ ํํ๋ค.
2. ํญ๋ชฉ์ด ์ ํ๋๋ฉด onchange ์ด๋ฒคํธ์์ํด showCustomer() ํจ์๋ฅผ ํธ์ถํ์ฌ ajax ์์ฒญ์ด ์๋ฒ๋ก ์ ์ก๋๊ณ
3. ์๋ฒ์์ getcustomer.aspํ์ผ์ด ์คํ์ด ๋๋๋ฐ ์ด ํ์ผ์ DB๋ฅผ ์กฐํํด์ ์ฝ์ด์จ ์ ๋ณด๋ฅผ htmlํํ์ ํ
์ด๋ธ์ ๋ง๋ค์ด์ ์๋ต์ผ๋ก ๋ณด๋
๋๋ค.
4. ๊ทธ๋ฌ๋ฉด ์ด ์๋ต์ผ๋ก ๋ฐ์ htmlํ์์ ์ ๋ณด๋ฅผ ๋๋๋ค์ด ๋ฆฌ์คํธ ์๋์ชฝ์ ๋ฟ๋ ค์ค๋๋ค.
์ด๋ฐ์์ผ๋ก ajax๋ฅผ ์ด์ฉํ ์์ฒญ์ด ์ฒ๋ฆฌ๊ฐ ๋๋ ๊ฒ๋๋ค.
๋ณ๋ก ์ด๋ ต์ง ์์ฃ ? ^-^
์ฌ๊ธฐ์ AJAX ํฌ์คํ
์ ๋ง์น๋๋ก ํ๊ฒ ์ต๋๋ค.
์ฐธ๊ณ ๋ก AJAXํฌ์คํ
์ ์ฌ์ฉ๋ ์๋ฃ๋ W3Schools์ ์๋ ์๋ฃ๋ฅผ ๋ฒ์ญํด๋์ ์์ค์
๋๋ค.
๊ถ๊ธํ๊ฒ ์์ผ์๋ฉด ๋๊ธ ๋ฌ์์ฃผ์๋ฉด ๋ต๊ธ ๋ฌ์๋๋ฆฌ๋๋ก ํ๊ฒ ์ต๋๋ค.
'๐ป Programming > ์นํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[jQuery] 4. DOM Attributes ( DOM ์์ฑ ) (0) | 2016.06.12 |
---|---|
[jQuery] 3. Selectors ( ์ ๋ ํฐ ) (0) | 2016.06.12 |
AJAX๋? - ์ด๋ฒคํธ ์ข ๋ฅ (0) | 2016.06.12 |
AJAX๋? - ์๋ฒ๋ก๋ถํฐ ์๋ต๋ฐ๊ธฐ (0) | 2016.06.12 |
AJAX๋? - ์๋ฒ๋ก ์์ฒญํ๊ธฐ (1) | 2016.06.12 |