PHP 和 AJAX MySQL數(shù)據(jù)庫(kù)實(shí)例-6.5PHP和AJAX
閱讀 ?·? 發(fā)布日期 2019-06-29 08:31 ?·? adminAJAX 可用來(lái)與數(shù)據(jù)庫(kù)進(jìn)行交互式通信。
AJAX 數(shù)據(jù)庫(kù)實(shí)例
在下面的 AJAX 實(shí)例中,我們將演示網(wǎng)頁(yè)如何使用 AJAX 技術(shù)從 MySQL 數(shù)據(jù)庫(kù)中讀取信息。
在下拉列表中選擇一個(gè)客戶
此處將列出客戶信息。
這個(gè)應(yīng)用程序由四個(gè)元素組成:
- MySQL 數(shù)據(jù)庫(kù)
- 一張簡(jiǎn)單的 HTML 表單
- JavaScript
- PHP 頁(yè)面
數(shù)據(jù)庫(kù)
將在本例中使用的數(shù)據(jù)庫(kù)看起來(lái)類似這樣:
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 |
例子解釋
在上面的例子中,當(dāng)用戶在上面的下拉列表中選擇客戶時(shí),會(huì)執(zhí)行名為“showUser()”的函數(shù)。
該函數(shù)由 onchange 事件觸發(fā)。
這是 HTML 代碼:
實(shí)例
<!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="">請(qǐng)選擇一個(gè)客戶:</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>
運(yùn)行實(shí)例
代碼解釋:
首先,檢查是否選擇了客戶。如果未選擇任何客戶(str ==“”),則清除 txtHint 的內(nèi)容并退出該函數(shù)。如果選擇了某個(gè)客戶,則執(zhí)行以下操作:
- 創(chuàng)建 XMLHttpRequest 對(duì)象
- 創(chuàng)建服務(wù)器響應(yīng)就緒時(shí)要執(zhí)行的函數(shù)
- 將請(qǐng)求發(fā)送到服務(wù)器上的文件
- 請(qǐng)注意,參數(shù)(q)被添加到 URL(帶有下拉列表的內(nèi)容)
PHP 文件
上面的 JavaScript 調(diào)用的服務(wù)器上的頁(yè)面是一個(gè)名為“getuser.php”的 PHP 文件。
“getuser.php”中的源代碼對(duì) MySQL 數(shù)據(jù)庫(kù)運(yùn)行查詢,并在 HTML 表中返回結(jié)果:
<?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);
?>
解釋:當(dāng)查詢從 JavaScript 發(fā)送到 PHP 文件時(shí),會(huì)發(fā)生以下情況:
- PHP 打開與 MySQL 服務(wù)器的連接
- 找到了正確的客戶
- 創(chuàng)建一個(gè) HTML 表,填充數(shù)據(jù),并發(fā)送回“txtHint”占位符
為您推薦
- 襯塑管網(wǎng)站建設(shè)_網(wǎng)頁(yè)定制制作與開發(fā) 2020-01-12
- 保溫管網(wǎng)站建設(shè)_網(wǎng)頁(yè)定制制作與開發(fā) 2020-01-12
- 玻璃管網(wǎng)站建設(shè)_網(wǎng)頁(yè)定制制作與開發(fā) 2020-01-12
- 鍍鋅方矩管網(wǎng)站建設(shè)_網(wǎng)頁(yè)定制制作與 2020-01-12
- PVC管材網(wǎng)站建設(shè)_網(wǎng)頁(yè)定制制作與開發(fā) 2020-01-12