PHP - AJAX 和 MySQL
AJAX可用于与数据库进行交互式通信。
AJAX 数据库示例
以下示例将演示网页如何使用 AJAX 从数据库获取信息:
例子
个人信息将列在这里...
示例解释 - MySQL 数据库
我们在上面的例子中使用的数据库表如下所示:
ID | 名 | 姓 | 年龄 | 家乡 | 工作 |
---|---|---|---|---|---|
1 | 彼得 | 格里芬 | 41 | 蛤蜊 | 啤酒厂 |
2 | 洛伊丝 | 格里芬 | 40 | 纽波特 | 钢琴老师 |
3 | 约瑟夫 | 斯旺森 | 39 | 蛤蜊 | 警官 |
4 | 格伦 | 泥潭 | 41 | 蛤蜊 | 飞行员 |
示例解释
在上面的例子中,当用户在上面的下拉列表中选择一个人时,就会执行一个名为“showUser()”的函数。
该功能由 onchange 事件触发。
以下是 HTML 代码:
例子
<html>
<head>
<script>
函数 showUser(str) {
如果 (str == "") {
文档.getElementById(“txtHint”).innerHTML =“”;
返回;
} 别的 {
var xmlhttp = 新的 XMLHttpRequest();
xmlhttp.onreadystatechange = 函数(){
如果 (this.readyState == 4 && this.status == 200) {
文档.getElementById (“txtHint”).innerHTML = this.responseText;
}
};
xmlhttp.open("GET","getuser.php?q="+str,true);
xmlhttp.发送();
}
}
</script>
</head>
<body>
<form>
<select name="users" onchange="showUser(this.value)">
<option value="">选择一个人:</option>
<option value="1">彼得·格里芬</option>
<option value="2">洛伊丝·格里芬</option>
<option value="3">约瑟夫·斯旺森</option>
<option value="4">格伦·夸格迈尔</option>
</select>
</form>
<br>
<div id="txtHint"><b>个人信息将列在这里...</b></div>
</body>
</html>
运行示例 »
代码解释:
首先,检查是否选择了 person。如果没有选择 person(str == ""),则清除 txtHint 的内容并退出该函数。如果选择了 person,则执行以下操作:
- 创建 XMLHttpRequest 对象
- 创建在服务器响应准备就绪时执行的函数
- 将请求发送到服务器上的文件
- 请注意,URL 中添加了一个参数 (q)(包含下拉列表的内容)
PHP 文件
上面的 JavaScript 调用的服务器上的页面是一个名为“getuser.php”的 PHP 文件。
“getuser.php”中的源代码对 MySQL 数据库运行查询,并在 HTML 表中返回结果:
<!DOCTYPE html>
<html>
<head>
<style>
桌子 {
宽度:100%;
边框塌陷:塌陷;
}
表,td,th {
边框:1px 实心黑色;
填充:5px;
}
th {文本对齐:左;}
</style>
</head>
<body>
<?php
$q = intval($_GET['q']);
$con = mysqli_connect('localhost','peter','abc123','my_db');
如果(!$ con){
die('无法连接:' . mysqli_error($con));
}
mysqli_select_db($con,“ajax_demo”);
$sql="SELECT * FROM user WHERE id = '".$q."'";
$结果=mysqli_query($con,$sql);
回显<table>
<tr>
<th>名</th>
<th>姓</th>
<th>年龄</th>
<th>家乡</th>
<th>工作</th>
</tr>“;
虽然($row = mysqli_fetch_array($result)){
回显<tr> “;
回显<td> “.$row['FirstName'].”</td> “;
回显<td> “.$row['姓氏'].</td> “;
回显<td> “.$row['年龄'].</td> “;
回显<td> “. $row['家乡'].</td> “;
回显<td> “.$row['职位'].</td> “;
回显</tr> “;
}
回显</table> “;
mysqli_close($con);
?>
</body>
</html>
说明:当查询从 JavaScript 发送到 PHP 文件时,会发生以下情况:
- PHP 打开与 MySQL 服务器的连接
- 找到正确的人
- 创建一个 HTML 表,填充数据,然后发送回“txtHint”占位符