웹마스터 팁

간단한 Ajax 메모

2007.12.31 02:14

엔시™

아주간단합니다.
Ajax 초보공부 하는김에 만들어본건데요^^;
기능은 그냥 이름과 내용만 전송할 수 있습니다.
아직 Ajax를 접해보지 못하신 초보분들이 보시면 좋겠습니다.^^
전송 후 15초동안은 글등록을 막게했구요.
삭제는 귀찮아서 ㄷㄷㄷ;;

클라이언트측
(XMLHTTPRequest 전송)
             ↑↓
DB처리 밑 php루틴 부분

이런건데요..
한번보시면이해가 각실겁니다.

UTF-8의 환경에서만 작동합니다..
나중에는 더 열심히 공부해서 응용작을 보여드리겠습니다.

아래는 DB생성시 필요한 쿼리문입니다.

CREATE TABLE `guest` (
  `no` int(255) NOT NULL auto_increment,
  `name` varchar(40) NOT NULL,
  `content` longtext NOT NULL,
  KEY `no` (`no`)
) ENGINE=MyISAM AUTO_INCREMENT=130 DEFAULT CHARSET=utf8 AUTO_INCREMENT=130 ;

혹시 자료를 다운받기 귀찮으실거같애서 스크립트소스는 쓰겠습니다..
load.js( js코드들이 들어있는곳)

function getXMLHTTPRequest(){
var req=false;
try {
req = new XMLHttpRequest();
}
catch(err1){
try{
req = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(err2)
{
try
{
 req=new ActiveXObject("Microsoft.XMLHTTP");
 }
 catch(err3)
 {
 req=false;
 }
}
   }
 return req
}

var myRequest = getXMLHTTPRequest();

function callAjax(testvalue){
if(!testvalue)
var name=document.form1.myname.value;
var content=document.form1.content.value;
var url = "test.php?name="+name+"&content="+content;
myRequest.open("GET",url,true);
myRequest.onreadystatechange = responseAjax;
myRequest.send(null);
document.form1.content.value='';
return false;
}

function responseAjax(){
if(myRequest.readyState == 4){
if(myRequest.status == 200){
document.getElementById("test").innerHTML=myRequest.responseText;
   }
   }
   else{ document.getElementById("test").innerHTML= "<img src='load.gif'>"; }
 }