• PHP - AJAX 与 PHP


    AJAX 被用于创建交互性更强的应用程序。


    AJAX PHP 实例

    下面的实例将演示当用户在输入框中键入字符时,网页如何与 Web 服务器进行通信:

    实例

    尝试在输入框中输入一个名字,如:Anna:

    姓名: 

    返回值:


    实例解释 - HTML 页面

    当用户在上面的输入框中键入字符时,会执行 "showHint()" 函数。该函数由 "onkeyup" 事件触发:

    1. <html>
    2. <head>
    3. <script>
    4. function showHint(str)
    5. {
    6.     if (str.length==0)
    7.     {
    8.         document.getElementById("txtHint").innerHTML="";
    9.         return;
    10.     }
    11.     if (window.XMLHttpRequest)
    12.     {
    13.         // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行的代码
    14.         xmlhttp=new XMLHttpRequest();
    15.     }
    16.     else
    17.     {    
    18.         //IE6, IE5 浏览器执行的代码
    19.         xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    20.     }
    21.     xmlhttp.onreadystatechange=function()
    22.     {
    23.         if (xmlhttp.readyState==4 && xmlhttp.status==200)
    24.         {
    25.             document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    26.         }
    27.     }
    28.     xmlhttp.open("GET","gethint.php?q="+str,true);
    29.     xmlhttp.send();
    30. }
    31. </script>
    32. </head>
    33. <body>
    34. <p><b>在输入框中输入一个姓名:</b></p>
    35. <form>
    36. 姓名: <input type="text" onkeyup="showHint(this.value)">
    37. </form>
    38. <p>返回值: <span id="txtHint"></span></p>
    39. </body>
    40. </html>

    源代码解释:

    如果输入框是空的(str.length==0),该函数会清空 txtHint 占位符的内容,并退出该函数。

    如果输入框不是空的,那么 showHint() 会执行以下步骤:

    • 创建 XMLHttpRequest 对象
    • 创建在服务器响应就绪时执行的函数
    • 向服务器上的文件发送请求
    • 请注意添加到 URL 末端的参数(q)(包含输入框的内容)

    PHP 文件

    上面这段通过 JavaScript 调用的服务器页面是名为 "gethint.php" 的 PHP 文件。

    "gethint.php" 中的源代码会检查姓名数组,然后向浏览器返回对应的姓名:

    1. // 将姓名填充到数组中
    2. $a[]="Anna";
    3. $a[]="Brittany";
    4. $a[]="Cinderella";
    5. $a[]="Diana";
    6. $a[]="Eva";
    7. $a[]="Fiona";
    8. $a[]="Gunda";
    9. $a[]="Hege";
    10. $a[]="Inga";
    11. $a[]="Johanna";
    12. $a[]="Kitty";
    13. $a[]="Linda";
    14. $a[]="Nina";
    15. $a[]="Ophelia";
    16. $a[]="Petunia";
    17. $a[]="Amanda";
    18. $a[]="Raquel";
    19. $a[]="Cindy";
    20. $a[]="Doris";
    21. $a[]="Eve";
    22. $a[]="Evita";
    23. $a[]="Sunniva";
    24. $a[]="Tove";
    25. $a[]="Unni";
    26. $a[]="Violet";
    27. $a[]="Liza";
    28. $a[]="Elizabeth";
    29. $a[]="Ellen";
    30. $a[]="Wenche";
    31. $a[]="Vicky";
    32. //从请求URL地址中获取 q 参数
    33. $q=$_GET["q"];
    34. //查找是否由匹配值, 如果 q>0
    35. if (strlen($q) > 0)
    36. {
    37.     $hint="";
    38.     for($i=0; $i<count($a); $i++)
    39.     {
    40.         if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q))))
    41.         {
    42.             if ($hint=="")
    43.             {
    44.                 $hint=$a[$i];
    45.             }
    46.             else
    47.             {
    48.                 $hint=$hint." , ".$a[$i];
    49.             }
    50.         }
    51.     }
    52. }
    53. // 如果没有匹配值设置输出为 "no suggestion"
    54. if ($hint == "")
    55. {
    56.     $response="no suggestion";
    57. }
    58. else
    59. {
    60.     $response=$hint;
    61. }
    62. //输出返回值
    63. echo $response;
    64. ?>

    解释:如果 JavaScript 发送了任何文本(即 strlen($q) > 0),则会发生:

    1. 查找匹配 JavaScript 发送的字符的姓名
    2. 如果未找到匹配,则将响应字符串设置为 "no suggestion"
    3. 如果找到一个或多个匹配姓名,则用所有姓名设置响应字符串
    4. 把响应发送到 "txtHint" 占位符
  • 相关阅读:
    java计算机毕业设计学生综合考评管理系统源码+数据库+系统+lw文档+mybatis+运行部署
    Java注解与反射知识梳理
    2.15 这样的小红书图片内容,最容易“踩雷”!【玩赚小红书】
    Nginx监控模块
    RGB(c++)
    android性能优化
    文件存储空间管理(空闲表法,空闲链表法,位示图法,成组链表法)
    将Visual Studio Code配置成好用的Python IDE
    SpringBoot/Spring扩展点系列之初始化和销毁的3种办法 - 第438篇
    卷积神经网络吴恩达coursera
  • 原文地址:https://blog.csdn.net/unbelievevc/article/details/126616688