首頁 > 後端開發 > PHP問題 > 如何用php實作一個搜尋提示框

如何用php實作一個搜尋提示框

PHPz
發布: 2023-03-22 09:54:02
原創
1710 人瀏覽過

在現代的網站上,一個有用的搜尋框是不可或缺的。這個功能可以大幅簡化使用者的搜尋流程,並提高網站的使用者體驗。而在搜尋框旁邊加上一個提示框,更是將使用者的搜尋效率提升到了一個新的高度。那麼,本文將介紹如何使用 PHP 來實作一個搜尋框提示框功能。

一、實作原理

在 PHP 實作搜尋提示框的過程中,我們需要使用 AJAX 技術。主要分為以下幾個步驟:

  1. 使用者在搜尋框中輸入搜尋關鍵字。
  2. 把關鍵字傳送給伺服器端的 PHP 腳本。
  3. 在伺服器端,透過查詢資料庫或其他資料來源,取得與關鍵字相關的搜尋結果。
  4. 將搜尋結果封裝成 JSON 資料格式並傳回給客戶端。
  5. 客戶端收到伺服器傳回的資料後,使用 JavaScript 將其展現在搜尋框下方,形成搜尋提示框。

二、實作步驟

  1. 建立資料庫表

我們先建立一個名為products 的商品表,包含以下欄位:

id          int(11)         商品 ID
name        varchar(255)    商品名称
description text            商品描述
price       decimal(10,2)   商品价格
登入後複製
  1. #寫資料庫查詢函數

我們需要寫一個query() 函數去連接資料庫並執行查詢,傳回結果陣列。範例如下:

<?php
function query($query) {
    $database = new PDO(&#39;mysql:host=localhost; dbname=database_name&#39;, &#39;database_user&#39;, &#39;database_password&#39;);
    $database->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $database->prepare($query);
    $stmt->execute();
    return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
?>
登入後複製
  1. 編寫搜尋提示框邏輯

實作搜尋框提示框邏輯的程式碼如下:

<?php
$keyword = $_GET[&#39;keyword&#39;];
if ($keyword) {
    $result = query("SELECT name FROM products WHERE name LIKE &#39;%$keyword%&#39; LIMIT 5");
    $data = array();
    foreach ($result as $row) {
        $data[] = $row[&#39;name&#39;];
    }
    echo json_encode($data);
}
?>
登入後複製

以上程式碼執行如下操作:

  • 從GET 請求中取得搜尋關鍵字。

  • 查詢資料庫中與關鍵字相符的前 5 個商品名稱,並將結果儲存在 $data 陣列中。

  • 將資料編碼成 JSON 格式並傳回給客戶端。

  • 編寫客戶端程式碼

實作搜尋框提示方塊顯示的客戶端程式碼如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>PHP 搜索框提示框实例</title>
    <script src="https://cdn.bootcss.com/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
    <input type="text" id="search-box" placeholder="请输入搜索关键字">
    <div id="search-result"></div>
    <script>
        $(document).ready(function() {
            $('#search-box').keyup(function() {
                var keyword = $(this).val();
                $.ajax({
                    url: 'search.php',
                    type: 'GET',
                    dataType: 'json',
                    data: {keyword: keyword},
                    success: function(data) {
                        var html = '';
                        for (var i = 0; i < data.length; i++) {
                            html += &#39;<div>' + data[i] + '</div>';
                        }
                        $('#search-result').html(html);
                    },
                    error: function() {
                        $('#search-result').html('无法获取数据!');
                    }
                });
            });
        });
    </script>
</body>
</html>
登入後複製

以上程式碼執行如下操作:

  • 監聽搜尋框輸入事件。

  • 取得搜尋框輸入關鍵字並傳送 AJAX 請求到 search.php

  • 顯示 AJAX 傳回的資料在搜尋提示框中。

三、總結

透過上述步驟,我們成功實作了一個搜尋框提示框功能。使用者在搜尋框中輸入關鍵字,網頁透過AJAX 技術將關鍵字發送到伺服器端,伺服器根據關鍵字查詢資料庫並返回匹配結果給網頁,最後將結果以搜尋提示框形式展現在搜尋框下邊,實現了優秀的用戶搜尋體驗。這具體的實作方法我們可以根據實際需求進行彈性修改,以達到最佳的效果。

以上是如何用php實作一個搜尋提示框的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板