강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

Ajax 간단한 예제(우편번호검색)
작성자 : 13 김영철
등록날짜 : 2009.01.29 16:53
4,021

간단한 관련예제 달라시는분이 상당히 계셔서

일일히 보내드리지 못해 여기를 빌려올립니다.

나름데로 주석을 달아놨으니 참고하세요.

내용은 화일 두개입니다.

index.php - 우편번호 입력폼이 하나 있는 페이지 입니다.(동이름을 치시면 되겠네요)
                입력폼에서 키입력이 있을때마다 sample.php에 입력폼안의 동이름으로
                쿼리를 실행하고, 쿼리결과를 출력합니다.

sample.php - index.php에서 Ajax를 통해 값을받아 우편번호테이블을 이용해 결과를
                  출력합니다.


*********** index.php ***************

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=euc-kr">
<META http-equiv="keywords" content="">
<META http-equiv="description" content="">
<META http-equiv="robots" content="noindex">
<META http-equiv="pragma" content="no-cache">
<META http-equiv="Content-Style-Type" content="text/css">
<META http-equiv="Content-Script-Type" content="text/javascript">
</HEAD>
<SCRIPT>
    var req;//php로 보낼 request변수
    //onkeyup 이벤트 발생시 호출되는 함수
    function kin() {
        req = newXMLHttpRequest(); //request 객체 생성
        req.onreadystatechange = processReqChange;// 요청후 처리될 콜백함수를 정의합니다.
        var kobj = document.getElementById("k"); // input Object
        var q = kobj.value;
        document.getElementById("out").innerText = q; // input에 입력한 값을 화면에표시(디버그용)
        req.open("POST", "sample.php", true); //POST방식으로 sample.php 에 요청한다는것을 정의합니다.
        req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");//요청헤더의 정의
        req.send("q="+q); // sample.php에 값을 넘깁니다.
        // 중요!!: sample.php에 값이 넘어갈때에는 UTF-8로 인코딩되어 넘어갑니다.
    }
//request객체생성 함수
// function from http://www-128.ibm.com/developerworks/kr/library/j-ajax1/index.html
function newXMLHttpRequest() {

  var xmlreq = false;

  if (window.XMLHttpRequest) { //파이어폭스나 맥의 사파리의 경우처리
    // Create XMLHttpRequest object in non-Microsoft browsers
    xmlreq = new XMLHttpRequest();
  } else if (window.ActiveXObject) { //IE계열의 브라우져의 경우
    // Create XMLHttpRequest via MS ActiveX
    try {
      // Try to create XMLHttpRequest in later versions
      // of Internet Explorer
      xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e1) {
      // Failed to create required ActiveXObject
      try {
        // Try version supported by older versions
        // of Internet Explorer
        xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e2) {
        // Unable to create an XMLHttpRequest with ActiveX
      }
    }
  }
  return xmlreq;
}

// kin()에서 정의될 콜백함수의 정의
// function from http://developer.apple.com/internet/webcontent/xmlhttpreq.html
// handle onreadystatechange event of req object
function processReqChange() {
    // only if req shows "loaded"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
            printData(); //kin()의 요청이 정상적으로 처리되고 출력된 값을 어떻게 처리할지의 함수
        } else {
            alert("There was a problem retrieving the XML data:\n" +
                req.statusText);
        }
    }
}
//sample.php에서 출력된 내용을 어떻게 처리할것인지?
function printData(txt) {
    document.getElementById("serverMsg").innerHTML = req.responseText;
}

</SCRIPT>
<BODY>
<DIV id="out"></DIV>
<INPUT type="text" autocomplete="off" value="" size="20" id="k" onkeyup="kin()">
<DIV id="serverMsg"></DIV>

</BODY>
</HTML>

***************************************


*********** sample.php ***************

<?php
    $query = iconv("UTF-8","CP949",$_POST["q"]); //DB가 EUC-KR의 경우 요청값이 UTF-8로 넘어온 것을 EUC-KR로 변환
    //$query = $_POST["q"]; // DB가 UTF-8의 경우는 그냥 받아서 처리하면됩니다.
    $conn = mysql_connect("localhost", "root", "1111") //DB접속 정보
    or die("connect error!!" . mysql_error());
    
    mysql_select_db("dbname");//database명을 지정합니다
    
    $strSQL = " SELECT sigun,dong";
    $strSQL .= "  FROM zipcode";
    $strSQL .= " WHERE dong like '".$query."%'";
    
    $rs = mysql_query($strSQL);
    while ( $row = mysql_fetch_array($rs) ) {
        $out .= $row[0]."<BR/>";
    }
    
    //echo iconv("CP949","UTF-8",$out); //값이 출력될 index.php 의 인코딩이 UTF-8의 경우 변환해서 출력합니다.
    echo $out;
?>

********************************

일하는중에 올리는 것이라 설명이 부족합니다.

성격에 맞지 않는다면 며칠 후 삭제하겠습니다.

우편번호 테이블은 스쿨 자료실에서 구하시면 됩니다.


출처 : Tong - 드렁크수달스님의 ■ AJAX ■통

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
3285 이것은 AI파일 미리보기입니다. 댓글3 M 최고의하루 01.15 3588
3284 이미지미리보기pds파일미리보기파일입니다^^ 댓글2 99 단국강토 01.14 2826
3283 동영상 캡쳐(Capture) 아주 쉽게 하기~ 99 단국강토 01.14 2616
3282 자판기안의 특수문자 99 단국강토 01.13 2531
3281 ntdll.dll 오류 해결방법 M 최고관리자 01.12 4393
3280 인터넷 동영상 저장하기 - 넷트랜스포터 사용 - M 최고의하루 01.12 3099
3279 옛날 기사를 찾아보고 싶을때 99 단국강토 01.08 2231
3278 CD 음악 mp3로 바꾸기 99 단국강토 01.08 2500
3277 알씨로 초간단 동영상 슬라이드쇼 만들기 99 단국강토 01.07 2842
3276 IP 추적은 어떻게 하는가? 99 단국강토 01.07 2392
3275 일본어로 된 웹을 한글로 즐기기 99 단국강토 01.06 2352
3274 이것은 AI파일 미리보기입니다. 댓글2 M 최고의하루 01.15 4030
3273 이미지미리보기pds파일미리보기파일입니다^^ 99 단국강토 01.14 2448
3272 동영상 캡쳐(Capture) 아주 쉽게 하기~ 99 단국강토 01.14 2783
3271 공유기 차단 무력화 시키는 법 99 단국강토 01.13 3542
3270 자판기안의 특수문자 99 단국강토 01.13 2364
3269 ntdll.dll 오류 해결방법 M 최고의하루 01.12 3661
3268 인터넷 동영상 저장하기 - 넷트랜스포터 사용 - M 최고의하루 01.12 3226
3267 옛날 기사를 찾아보고 싶을때 99 단국강토 01.08 2169
3266 CD 음악 mp3로 바꾸기 99 단국강토 01.08 2485
3265 알씨로 초간단 동영상 슬라이드쇼 만들기 99 단국강토 01.07 3311
3264 IP 추적은 어떻게 하는가? 99 단국강토 01.07 2212
3263 일본어로 된 웹을 한글로 즐기기 99 단국강토 01.06 2308
3262 [컴퓨터 키보드, 특수문자 정식 명칭들] M 최고의하루 12.18 3700
3261 하드,CPU,RAM 지원표 M 최고의하루 12.18 2584
3260 award bios 어워드 바이오스 설정법 M 최고의하루 12.18 3943
3259 내장 그래픽카드 죽이는 법 M 최고의하루 12.04 4881
3258 컴퓨터 조립 M 최고의하루 12.04 2830
3257 USB 버젼 속도 차이 2 천진난만 02.20 2375
3256 제가 사용하고 있는 마케팅프로그램입니다 댓글1 3 천지인 05.23 13192
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취