• 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 版spring cloud 企业电子招标采购系统
    基于BERT+BiLSTM+CRF模型与新预处理方法的古籍自动标点
    Python 教程之 Python中的高级交互式仪表板,连接不同的 API 以创建用于分析的高级交互式仪表板
    C语言 | Leetcode C语言题解之第125题验证回文串
    IDEA的使用(一) (IntelliJ IDEA 2022.1.3版本)
    Java HashSet集合简介说明
    附录A 程序员工作面试的秘密
    业务调整,业绩短期承压,市场热潮退去后的乐舱物流将驶向何方?
    Bazzite:专为 Steam Deck 和 PC 上的 Linux 游戏打造的发行版
    【21天学习挑战赛】顺序查找和二分查找的小总结
  • 原文地址:https://blog.csdn.net/unbelievevc/article/details/126616688