AJAX(Asynchronous JavaScript and XML)即異步JavaScript和XML,是一種在不重新加載整個網頁的情況下更新部分網頁內容的技術。在Web開發中,經常需要從數據庫中查詢數據,并返回給用戶相應的結果。在本文中,我們將介紹如何使用AJAX技術實現模糊查詢數據庫,并展示一些示例。
假設我們有一個名為“products”的數據庫表,其中包含產品的名稱和價格。現在我們想要根據用戶輸入的關鍵字來查找數據庫中的產品,并將結果實時顯示給用戶。通過AJAX技術,我們可以實現在用戶輸入時自動更新查詢結果,而無需刷新整個頁面。
<input type="text" id="keyword" onkeyup="search()">
<div id="result"></div>
<script type="text/javascript">
function search() {
var keyword = document.getElementById("keyword").value;
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("result").innerHTML = this.responseText;
}
};
xmlhttp.open("GET", "search.php?keyword=" + keyword, true);
xmlhttp.send();
}
</script>
在上面的代碼中,我們首先在頁面上創建一個輸入框,用于用戶輸入查詢關鍵字。然后,我們使用JavaScript的onkeyup事件來觸發search()函數。在search()函數中,我們通過getElementById()方法獲取用戶輸入的關鍵字,并將其賦值給變量keyword。接下來,我們使用XMLHttpRequest對象創建一個HTTP請求,并通過GET方法將關鍵字作為參數傳遞給服務器端的search.php文件。
<?php
$keyword = $_GET["keyword"];
// 連接到數據庫
$conn = new mysqli("localhost", "username", "password", "database");
// 查詢數據庫
$sql = "SELECT * FROM products WHERE name LIKE '%' . $keyword . '%'";
$result = $conn->query($sql);
// 顯示查詢結果
if ($result->num_rows >0) {
while ($row = $result->fetch_assoc()) {
echo "<p>產品名稱:" . $row["name"] . " 價格:" . $row["price"] . "</p>";
}
} else {
echo "沒有找到匹配的產品。";
}
// 關閉數據庫連接
$conn->close();
?>
在search.php文件中,我們首先獲取前端傳遞的關鍵字。然后,使用mysqli庫連接到數據庫,并執行一個模糊查詢操作,以查找與關鍵字匹配的產品。如果查詢結果不為空,我們使用fetch_assoc()方法遍歷結果集,并將結果以指定的格式輸出到前端頁面。如果查詢結果為空,我們輸出一條相應的提示信息。
通過以上代碼,我們實現了一個簡單的AJAX模糊查詢數據庫的功能。用戶只需在輸入框中輸入關鍵字,就能實時查詢數據庫,并將結果動態地顯示在頁面上。這種交互性和實時性的體驗將極大地提高用戶體驗,使用戶能更方便地找到所需的信息。