PHP - AJAX와 PHP
AJAX는 보다 대화형 애플리케이션을 만드는 데 사용됩니다.
AJAX PHP 예제
다음 예제에서는 사용자가 입력 상자에 문자를 입력할 때 웹 페이지가 웹 서버와 통신하는 방법을 보여줍니다.
예제 설명 - HTML 페이지
위 입력창에 사용자가 문자를 입력하면 "showHint()" 함수가 실행됩니다. 이 함수는 "onkeyup" 이벤트에 의해 실행됩니다:
<html> <head> <script> function showHint(str) { if (str.length==0) { document.getElementById("txtHint").innerHTML=""; return; } if (window.XMLHttpRequest) { // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行的代码 xmlhttp=new XMLHttpRequest(); } else { //IE6, IE5 浏览器执行的代码 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("txtHint").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","gethint.php?q="+str,true); xmlhttp.send(); } </script> </head> <body> <p><b>在输入框中输入一个姓名:</b></p> <form> 姓名: <input type="text" onkeyup="showHint(this.value)"> </form> <p>返回值: <span id="txtHint"></span></p> </body> </html>
소스 코드 설명:
입력 상자가 비어 있는 경우(str.length==0) 이 함수는 txtHint 자리 표시자를 지웁니다. 내용을 확인하고 기능을 종료합니다.
입력 상자가 비어 있지 않으면 showHint()는 다음 단계를 수행합니다.
· XMLHttpRequest 객체 생성
· 서버 응답이 준비되었습니다
· 서버에 있는 파일에 요청 보내기
· URL 끝에 추가된 매개변수(q)를 참고하세요(입력 상자의 내용 포함).
PHP 파일
위에서 JavaScript를 통해 호출되는 서버 페이지는 "gethint.php"라는 이름의 PHP 파일입니다.
"gethint.php"의 소스 코드는 이름 배열을 확인하고 해당 이름을 브라우저에 반환합니다.
<?php // 将姓名填充到数组中 $a[]="Anna"; $a[]="Brittany"; $a[]="Cinderella"; $a[]="Diana"; $a[]="Eva"; $a[]="Fiona"; $a[]="Gunda"; $a[]="Hege"; $a[]="Inga"; $a[]="Johanna"; $a[]="Kitty"; $a[]="Linda"; $a[]="Nina"; $a[]="Ophelia"; $a[]="Petunia"; $a[]="Amanda"; $a[]="Raquel"; $a[]="Cindy"; $a[]="Doris"; $a[]="Eve"; $a[]="Evita"; $a[]="Sunniva"; $a[]="Tove"; $a[]="Unni"; $a[]="Violet"; $a[]="Liza"; $a[]="Elizabeth"; $a[]="Ellen"; $a[]="Wenche"; $a[]="Vicky"; //从请求URL地址中获取 q 参数 $q=$_GET["q"]; //查找是否由匹配值, 如果 q>0 if (strlen($q) > 0) { $hint=""; for($i=0; $i<count($a); $i++) { if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q)))) { if ($hint=="") { $hint=$a[$i]; } else { $hint=$hint." , ".$a[$i]; } } } } // 如果没有匹配值设置输出为 "no suggestion" if ($hint == "") { $response="no suggestion"; } else { $response=$hint; } //输出返回值 echo $response; ?>
설명: JavaScript가 텍스트를 보내는 경우(예: strlen($q ) > ; 0),
1. JavaScript에서 보낸 문자와 일치하는 이름을 찾습니다.
2. 일치하는 항목이 없으면 응답 문자열을 "제안 없음"으로 설정합니다.
3. 일치하는 이름이 하나 이상 발견되면 모든 이름으로 응답 문자열을 설정합니다.
4. "txtHint" 자리 표시자에 응답을 보냅니다.
PHP Ajax 교차 도메인 문제 해결 방법
비동기 요청이 도메인 간을 수행해야 하는 경우 PHP Ajax 도메인 간 문제 해결 방법을 확인해 보세요.