AJAX 数据库

创建于 2024-12-03 / 22
字体: [默认] [大] [更大]

AJAX 可用于同数据库进行交互式通信。


AJAX Database 实例

下面的例子演示:网页如何通过 AJAX 从数据库中读取信息:

实例


Customer info will be listed here...

亲自试一试 »


例子解释 - showCustomer() 函数

当用户在上面的下拉列表中选择一位客户后,执行名为 showCustomer() 函数。此函数被 onchange 事件触发:

showCustomer

function showCustomer(str) {
  var xhttp;
  if (str == "") {
    document.getElementById("txtHint").innerHTML = "";
    return;
  }
  xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
    document.getElementById("txtHint").innerHTML = this.responseText;
    }
  };
  xhttp.open("GET", "getcustomer.php?q="+str, true);
  xhttp.send();
}

showCustomer() 函数进行如下:

  • 检查是否选取客户
  • 创建 XMLHttpRequest 对象
  • 创建当服务器响应就绪时执行的函数
  • 向服务器上的文件发送请求
  • 请注意,参数 q 被添加到 URL(带有下拉列表的内容)


AJAX 服务器页面

被以上 JavaScript 调用的服务器页面是名为 "getcustomer.asp" 的 ASP 文件。

使用 PHP 或其他服务器语言能够轻松重写该服务器文件。

<?php
$mysqli = new mysqli("servername", "username", "password", "dbname");
if($mysqli->connect_error) {
  exit('Could not connect');
}

$sql = "SELECT customerid, companyname, contactname, address, city, postalcode, country
FROM customers WHERE customerid = ?";

$stmt = $mysqli->prepare($sql);
$stmt->bind_param("s", $_GET['q']);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($cid, $cname, $name, $adr, $city, $pcode, $country);
$stmt->fetch();
$stmt->close();

echo "<table>";
echo "<tr>";
echo "<th>CustomerID</th>";
echo "<td>" . $cid . "</td>";
echo "<th>CompanyName</th>";
echo "<td>" . $cname . "</td>";
echo "<th>ContactName</th>";
echo "<td>" . $name . "</td>";
echo "<th>Address</th>";
echo "<td>" . $adr . "</td>";
echo "<th>City</th>";
echo "<td>" . $city . "</td>";
echo "<th>PostalCode</th>";
echo "<td>" . $pcode . "</td>";
echo "<th>Country</th>";
echo "<td>" . $country . "</td>";
echo "</tr>";
echo "</table>";
?>

0 人点赞过