Php 简明教程

PHP - AJAX Introduction

由 PHP 提供支持的 Web 应用程序通常使用 AJAX,两者联合起来可用来创建动态且交互式的 Web 应用程序。AJAX 代表 Asynchronous Javascript and XML 。它允许网页异步更新,而无需重新加载整个页面。

在 AJAX 应用程序中,Web 浏览器与服务器端 PHP 脚本之间的数据交换是异步的。PHP 是一种服务器端脚本语言,可用于生成动态内容并处理数据。

由于我们可以使用 JavaScript 执行后台服务器调用并检索所需数据,并且可以在不强制页面完全重新加载的情况下更新网页的请求部分,所以 AJAX 在 Web 应用程序与 Web 服务器之间创建了一层附加层(称为 AJAX 引擎)。它缩短了页面刷新时间,并且为用户提供了迅速而灵敏的体验。

php ajax introduction

What is Required to Run AJAX?

AJAX 使用的技术已经在所有现代浏览器中实现。因此,客户端不需要任何额外的模块来运行 AJAX 应用程序。AJAX 使用的技术有 −

  1. {s0} − 它是 AJAX 的重要部分。它允许你创建客户端功能。或者我们可以说它用于创建 AJAX 应用程序。

  2. {s1} − 它用于在 Web 服务器和客户端之间交换数据。

  3. {s2} − 它用于在 Web 浏览器和 Web 服务器之间执行异步数据交换。

  4. {s3} − 它用于向网页文本提供标记和样式。

  5. {s4} − 它用于动态地与网页布局和内容进行交互并更改它们。

在 PHP 中使用 AJAX,将需要使用 JavaScript 中的 XMLHttpRequest 对象向 PHP 服务器发送请求。然后 PHP 服务器将处理请求并返回响应,通常以 JSON 或 XML 的形式。随后 JavaScript 代码能够分析响应并相应地更新网页。

JavaScript 中的 XMLHttpRequest 对象是基于浏览器的 API,允许开发者向服务器发出 HTTP 请求而无需刷新该页面。这是 AJAX 编程的基础,这允许动态且互动的 Web 应用。

XMLHttpRequest 对象可以用来 −

  1. 从服务器中检索数据,如 JSON、XML 或 HTML。

  2. 向服务器发送数据,如表单数据或文件上传。

  3. 无需重新加载即可更新网页。

  4. 创建聊天应用程序和其他交互式功能。

要使用 XMLHttpRequest 对象,首先需要创建一个新实例。然后,可以使用 open() 方法指定 HTTP 方法和请求 URL。下一步,可以设置任何请求头(如果需要的话)。最后,可以使用 send() 方法发送请求。

Example

以下是如何使用 XMLHttpRequest 对象从服务器检索数据的简单 JavaScript 代码 −

// Create a new XMLHttpRequest object
var xhr = new XMLHttpRequest();

// Set the HTTP method and request URL
xhr.open("GET", "test.php");

// Send the request
xhr.send();

// Listen for the onload event to be fired
xhr.onload = function() {

   // Check the status code to ensure the request was successful
   if (xhr.status === 200) {

      // Get the response data.
      var users = JSON.parse(xhr.responseText);

      // Do something with the user data.
   } else {
      // Handle the error
   }
};

服务器上的 PHP 脚本从 AJAX 请求中检索数据并发送回响应。

// Get the request data.
$name = $_GET["name"];

// Create a response object.
$response = new stdClass();
$response->message = "Hello, $name!";

// Send the response back to the client.
header("Content-Type: application/json");
echo json_encode($response);