>백엔드 개발 >PHP 문제 >계속 학습 - AJAX PHP(소스 코드 포함)

계속 학습 - AJAX PHP(소스 코드 포함)

慕斯
慕斯원래의
2021-05-31 17:44:502280검색

이전 기사에서는 "PHP SimpleXML이란 무엇입니까?"에 대해 소개했습니다. PHP 팬이라면 들어와서 살펴보세요! 》에서는 AJAX PHP가 무엇인지 계속해서 소개합니다. AJAX와 PHP에 대해 알고 계시나요? 결국 그는 아직 당신을 모릅니다! 친구가 되고 싶다면 와서 알아보세요

계속 학습 - AJAX PHP(소스 코드 포함)

PHP - AJAX 및 PHP AJAX는 보다 대화형 애플리케이션을 만드는 데 사용됩니다.

AJAX PHP의 경우 특정 작업은 아래와 같이 코드로 표시됩니다.

<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>

코드 실행 결과는 다음과 같습니다.

계속 학습 - AJAX PHP(소스 코드 포함)

소스 코드 설명:

  • 입력 상자가 비어 있으면( str.length==0), 이 함수는 txtHint 자리 표시자의 내용을 지우고 함수를 종료합니다.

  • 입력 상자가 비어 있지 않으면 showHint()는 다음 단계를 수행합니다.

  • XMLHttpRequest 객체 생성

  • 서버 응답이 준비되면 실행되는 함수 생성

  • 보내기 서버에 있는 파일에 요청

URL 끝에 추가된 매개변수(q)에 주의하세요(입력 상자의 내용 포함)

PHP 파일

JavaScript를 통해 호출되는 서버 페이지 위는 "gethint.php"라는 이름의 PHP 문서입니다.

"gehint.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 ) 무슨 일이 일어나는지:

JavaScript에서 보낸 문자와 일치하는 이름을 찾습니다.

일치하는 항목이 없으면 응답 문자열을 "제안 없음"으로 설정합니다.

일치하는 이름이 하나 이상 있으면 모든 이름으로 설정합니다. 응답 문자열

"txtHint" 자리 표시자에 응답 보내기

권장 학습: "PHP 비디오 튜토리얼"

위 내용은 계속 학습 - AJAX PHP(소스 코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.