PHP 和 AJAX MySQL數據庫實例-6.5PHP和AJAX
閱讀 ?·? 發布日期 2019-06-29 08:31 ?·? adminAJAX 可用來與數據庫進行交互式通信。
AJAX 數據庫實例
在下面的 AJAX 實例中,我們將演示網頁如何使用 AJAX 技術從 MySQL 數據庫中讀取信息。
在下拉列表中選擇一個客戶
此處將列出客戶信息。
這個應用程序由四個元素組成:
- MySQL 數據庫
- 一張簡單的 HTML 表單
- JavaScript
- PHP 頁面
數據庫
將在本例中使用的數據庫看起來類似這樣:
id | CustomerID | CompanyName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|---|
1 | Alibaba | Alibaba Group | Ma Yun | ...... | Hangzhou | 310002 | China |
2 | APPLE | Apple Inc. | Tim Cook | ...... | Cupertino | 95014 | USA |
3 | BAIDU | BAIDU Inc. | Li YanHong | ...... | Beijing | 100080 | China |
4 | Canon | Canon USA Inc. | Tsuneji Uchida | ...... | New York | 11042 | USA |
例子解釋
在上面的例子中,當用戶在上面的下拉列表中選擇客戶時,會執行名為“showUser()”的函數。
該函數由 onchange 事件觸發。
這是 HTML 代碼:
實例
<!doctype html>
<html>
<head>
<script>
function showUser(str) {
if (str=="") {
document.getElementById("txtHint").innerHTML="";
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 (this.readyState==4 && this.status==200) {
document.getElementById("txtHint").innerHTML=this.responseText;
}
}
xmlhttp.open("GET","/demo/getcustomer.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<form>
<select name="users" onchange="showUser(this.value)">
<option value="">請選擇一個客戶:</option>
<option value="1">Alibaba</option>
<option value="2">APPLE</option>
<option value="3">BAIDU</option>
<option value="4">Canon</option>
<option value="5">Google</option>
<option value="6">HUAWEI</option>
<option value="7">Microsoft</option>
<option value="8">Nokia</option>
<option value="9">SONY</option>
<option value="10">Tencent</option>
</select>
</form>
<br>
<div id="txtHint"><b>客戶信息將在此處列出。</b></div>
</body>
</html>
運行實例
代碼解釋:
首先,檢查是否選擇了客戶。如果未選擇任何客戶(str ==“”),則清除 txtHint 的內容并退出該函數。如果選擇了某個客戶,則執行以下操作:
- 創建 XMLHttpRequest 對象
- 創建服務器響應就緒時要執行的函數
- 將請求發送到服務器上的文件
- 請注意,參數(q)被添加到 URL(帶有下拉列表的內容)
PHP 文件
上面的 JavaScript 調用的服務器上的頁面是一個名為“getuser.php”的 PHP 文件。
“getuser.php”中的源代碼對 MySQL 數據庫運行查詢,并在 HTML 表中返回結果:
<?php
$q = intval($_GET['q']);
$con = mysqli_connect('MyServer','MyUser','MyPassword','Customers');
if (!$con) {
die('Could not connect: ' . mysqli_error($con));
}
$sql="SELECT * FROM customerslist WHERE id = '".$q."'";
$result = mysqli_query($con,$sql);
echo "<table>";
while($row = mysqli_fetch_array($result)) {
echo "<tr><th>CustomerID</th><td>" . $row['CustomerID'] . "</td></tr>";
echo "<tr><th>CompanyName</th><td>" . $row['CompanyName'] . "</td></tr>";
echo "<tr><th>ContactName</th><td>" . $row['ContactName'] . "</td></tr>";
echo "<tr><th>Address</th><td>" . $row['Address'] . "</td></tr>";
echo "<tr><th>City</th><td>" . $row['City'] . "</td></tr>";
echo "<tr><th>PostalCode</th><td>" . $row['PostalCode'] . "</td></tr>";
echo "<tr><th>Country</th><td>" . $row['Country'] . "</td></tr>";
}
echo "</table>";
mysqli_close($con);
?>
解釋:當查詢從 JavaScript 發送到 PHP 文件時,會發生以下情況:
- PHP 打開與 MySQL 服務器的連接
- 找到了正確的客戶
- 創建一個 HTML 表,填充數據,并發送回“txtHint”占位符
為您推薦
- 襯塑管網站建設_網頁定制制作與開發 2020-01-12
- 保溫管網站建設_網頁定制制作與開發 2020-01-12
- 玻璃管網站建設_網頁定制制作與開發 2020-01-12
- 鍍鋅方矩管網站建設_網頁定制制作與 2020-01-12
- PVC管材網站建設_網頁定制制作與開發 2020-01-12