AJAX 数据库示例
AJAX 可用于与数据库进行交互式通信。
AJAX 数据库示例
以下示例将演示网页如何使用 AJAX 从数据库中获取信息。
示例解释 - showCustomer() 函数
当用户在上面的下拉列表中选择客户时,会执行名为 showCustomer()
的函数。该函数由 onchange
事件触发。
showCustomer
function showCustomer(str) {
if (str == "") {
document.getElementById("txtHint").innerHTML = "";
return;
}
const xhttp = new XMLHttpRequest();
xhttp.onload = function() {
document.getElementById("txtHint").innerHTML = this.responseText;
}
xhttp.open("GET", "getcustomer.php?q="+str);
xhttp.send();
}
The showCustomer()
function does the following
- 检查是否选择了客户
- 创建一个 XMLHttpRequest 对象
- 创建服务器响应准备就绪时要执行的函数
- 将请求发送到服务器上的文件
- 请注意,URL 中添加了一个参数 (q)(包含下拉列表的内容)
AJAX 服务器页面
上面的 JavaScript 调用的服务器页面是一个名为 "getcustomer.php" 的 PHP 文件。
"getcustomer.php" 中的源代码对数据库运行查询,并将结果返回到 HTML 表格中。
<?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>客户 ID</th>";
echo "<td>" . $cid . "</td>";
echo "<th>公司名称</th>";
echo "<td>" . $cname . "</td>";
echo "<th>联系人姓名</th>";
echo "<td>" . $name . "</td>";
echo "<th>地址</th>";
echo "<td>" . $adr . "</td>";
echo "<th>城市</th>";
echo "<td>" . $city . "</td>";
echo "<th>邮政编码</th>";
echo "<td>" . $pcode . "</td>";
echo "<th>国家</th>";
echo "<td>" . $country . "</td>";
echo "</tr>";
echo "</table>";
?>