PHP Ajax 教程与示例

什么是阿贾克斯?

AJAX的 完整形式是异步的 JavaScript & XML。这是一种减少服务器和客户端之间交互的技术。它通过仅更新网页的一部分而不是整个页面来实现这一点。异步交互由 Java脚本。AJAX的目的是无需刷新页面就可以与服务器交换少量数据。

JavaScript 是一种客户端脚本语言。它由支持 Java脚本。Java脚本代码仅适用于具有 Java已启用脚本。

XML 是可扩展标记语言的首字母缩写。它用于以人类和机器可读的格式对消息进行编码。它类似于 HTML,但允许您创建自定义标签。有关 XML 的更多详细信息,请参阅文章 XML

为什么使用 AJAX?

  • 它允许开发像桌面应用程序一样丰富的交互式 Web 应用程序。
  • 验证可以在用户填写表单时进行,无需提交。这可以通过自动完成来实现。用户输入的单词将提交给服务器进行处理。服务器会使用与用户输入相匹配的关键字进行响应。
  • 它可用于根据另一个下拉框的值填充下拉框
  • 可以从服务器检索数据,并且只更新页面的某个部分,而无需加载整个页面。这对于加载以下内容的网页部分非常有用
  • 鸣叫
  • 科门斯
  • 访问网站的用户等

如何创建 PHP Ajax 应用程序

我们将创建一个简单的应用程序,允许用户搜索流行的 PHP MVC 框架。

我们的应用程序将有一个文本框,用户可以在其中输入框架的名称。

然后我们将使用 mvc AJAX 搜索匹配项,然后在搜索表单下方显示框架的完整名称。

步骤 1)创建索引页

索引.php

<html>

    <head>

        <title>PHP MVC Frameworks - Search Engine</title>

        <script type="text/javascript" src="auto_complete.js"></script>

    </head>

    <body>

        <h2>PHP MVC Frameworks - Search Engine</h2>

        <p><b>Type the first letter of the PHP MVC Framework</b></p>

        <form method="POST" action="index.php">

            <p><input type="text" size="40" id="txtHint"  onkeyup="showName(this.value)"></p>

        </form>

        <p>Matches: <span id="txtName"></span></p>

    </body>

</html>

这里,

  • “onkeyup=”showName(this.value)””执行 Java每次在文本框中输入一个键时,脚本函数 showName 都会执行。此功能称为自动完成

步骤 2)创建框架页面

框架.php

<?php

$frameworks = array("CodeIgniter","Zend Framework","Cake PHP","Kohana") ;

$name = $_GET["name"];

if (strlen($name) > 0) {

    $match = "";

    for ($i = 0; $i < count($frameworks); $i++) {

        if (strtolower($name) == strtolower(substr($frameworks[$i], 0, strlen($name)))) {

            if ($match == "") {

                $match = $frameworks[$i];

            } else {

                $match = $match . " , " . $frameworks[$i];

            }

        }

    }

}

echo ($match == "") ? 'no match found' : $match;

?>

步骤 3)创建 JS 脚本

自动完成.js

function showName(str){

    if (str.length == 0){ //exit function if nothing has been typed in the textbox

        document.getElementById("txtName").innerHTML=""; //clear previous results

        return;

    }

    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari

        xmlhttp=new XMLHttpRequest();

    } else {// code for IE6, IE5

        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

    }

    xmlhttp.onreadystatechange=function() {

        if (xmlhttp.readyState == 4 && xmlhttp.status == 200){

            document.getElementById("txtName").innerHTML=xmlhttp.responseText;

        }

    }

    xmlhttp.open("GET","frameworks.php?name="+str,true);

    xmlhttp.send();

}

这里,

  • “if (str.length == 0)” 检查字符串的长度。如果为 0,则不执行脚本的其余部分。
  • “if (window.XMLHttpRequest)…” Internet Explorer 版本 5 和 6 使用 ActiveXObject 实现 AJAX。其他版本和浏览器(如 Chrome、FireFox 使用 XMLHttpRequest。此代码将确保我们的应用程序在 IE 5 和 6 以及其他高版本的 IE 和浏览器中都能正常工作。
  • “xmlhttp.onreadystatechange=function...” 检查 AJAX 交互是否完成且状态为 200,然后使用返回的结果更新 txtName 跨度。

步骤 4)测试我们的 PHP Ajax 应用程序

假设您已将文件 index.php 保存在 phututs/ajax 中,浏览到 URL http://localhost/phptuts/ajax/index.php

测试我们的 PHP Ajax 应用程序

在文本框中输入字母 C 您将得到以下结果。

测试我们的 PHP Ajax 应用程序

上面的例子演示了 AJAX 的概念以及它如何帮助我们创建丰富的交互应用程序。

结语

  • AJAX 是异步的缩写 JavaScript 和 XML
  • AJAX 是一种用于创建丰富交互应用程序的技术,通过仅更新网页的部分内容来减少客户端和服务器之间的交互。
  • Internet Explorer 5 和 6 使用 ActiveXObject 来实现 AJAX 操作。
  • Internet Explorer 7 及以上版本和 Chrome 浏览器, Firefox, Opera,而 Safari 使用 XMLHttpRequest。