// Ajax.jsp // 웹프로그래밍 언어는 관계없다 난 jsp를 좋아라 해서..;
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR" %>
<HTML>
<HEAD>
<SCRIPT language=javascript>
var xhr = null;
// XMLHttpRequest 객체 얻기
function getXMLHttpRequest() {
if (window.ActiveXObject) {
try {
return new ActiveXObject("Msxml2.XMLHTTP");//IE 상위 버젼
} catch (e1) {
try {
return new ActiveXObject("Microsoft.XMLHTTP");//IE 하위 버젼
} catch (e2) {
return null;
}
}
} else if (window.XMLHttpRequest) {
return new XMLHttpRequest();//IE 이외의 브라우저(FireFox 등)
} else {
return null;
}
}
// 서버에 요청
function requestWorkPlan(URL, Str) {
//한글 처리( escape를 빼면 변환되지않음 이유는 나도 모름..ㅠ)
var SearchVal = escape(encodeURIComponent(Str));
URL += "?SearchVal="+SearchVal;
xhr = getXMLHttpRequest();//XMLHttpRequest 객체 얻기
xhr.onreadystatechange = responseWorkplan;//콜백 함수 등록
xhr.open("GET", URL, true);//연결
xhr.send(null);//전송
// 모두실행되면 전송된 URL이 전부실행되고 아래펑션에서 응답을하게된다.
// 왜냐 위 콜백함수이름이 responseWorkplan이니까
}
// 응답
function responseWorkplan() {
if (xhr.readyState == 4) {//완료
if (xhr.status == 200) {//오류없이 OK
//서버실행된 모든 태그 및 스크립트를 str에 담는다.
var str = xhr.responseText;
//DIV나 SPAN태그에 str을 담으면 페이지이동없이 실행된다.
document.getElementById("WorkPlan").innerHTML = str;
} else {
alert("Fail : " + xhr.status);
}
}
}
</SCRIPT>
<A onclick="javascript:requestWorkplan('Ajax_proc.jsp','한글이지렁~')">엘롱</A>
<SPAN id=WorkPlan>
멍청이
</SPAN>
// Ajax_proc.jsp // 역시 웹프로그래밍 언어는 관계없다
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR" %>
<%="똑똑한데?ㅋ"%>
실행하고나면 위의 span 태그값 "멍청이" 가 "똑똑한데?ㅋ" 으로 변경되며 페이지 이동없이 실행된다. 응용하면 Ajax_proc.jsp 에서 DB 값을 가져와 맘대로 뿌려주면 된다...