Home  >  Article  >  Backend Development  >  Continue learning - AJAX PHP (with source code)

Continue learning - AJAX PHP (with source code)

慕斯
慕斯Original
2021-05-31 17:44:502158browse

The previous article introduced you to "What is PHP SimpleXML?" If you are a fan of PHP, come in and take a look! 》, this article continues to introduce to you what AJAX PHP is. Regarding AJAX and PHP, do you know it? After all, he doesn’t know you yet! If you want to be friends, come and find out

Continue learning - AJAX PHP (with source code)

PHP - AJAX and PHP AJAX is used to create more interactive applications.

For AJAX PHP, our specific operations are shown in code, as shown below:

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

The code running results are as follows:

Continue learning - AJAX PHP (with source code)

Source code explanation:

  • If the input box is empty (str.length==0), this function will clear the content of the txtHint placeholder , and exit the function.

  • If the input box is not empty, then showHint() will perform the following steps:

  • Create an XMLHttpRequest object

  • Create a function that executes when the server response is ready

  • Send a request to a file on the server

Please note the addition to the URL The parameter (q) at the end (including the content of the input box)

PHP file

The server page called above through JavaScript is named "gethint.php" PHP file.

The source code in "gethint.php" checks the name array and returns the corresponding name to the browser:

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

Explanation:

If JavaScript sends any text (i.e. strlen($q) > 0), this will happen:

Find names matching the characters sent by JavaScript

If no match is found, this will respond String set to "no suggestion"

If one or more matching names are found, set the response string with all names

Send the response to the "txtHint" placeholder

Recommended learning: "PHP Video Tutorial"

The above is the detailed content of Continue learning - AJAX PHP (with source code). For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn