PHP 與 Ajax:建立一個自動完成建議引擎
使用 PHP 和 Ajax 建立自動完成建議引擎:伺服器端腳本:處理 Ajax 請求並傳回建議 (autocomplete.php)。客戶端腳本:發送 Ajax 請求並顯示建議 (autocomplete.js)。實戰案例:在 HTML 頁面中包含腳本並指定 search-input 元素識別碼。
PHP 與Ajax:建立一個自動完成建議引擎
自動完成建議引擎是一個有用的工具,它可以幫助使用者在輸入欄位中找到建議。它通常用於搜尋欄、位址欄位和其他文字輸入區域。本文將指導你使用 PHP 和 Ajax 建立一個自動完成建議引擎。
伺服器端腳本
首先,我們需要一個 PHP 腳本來處理 Ajax 請求並傳回建議。建立一個名為autocomplete.php
的檔案並新增以下程式碼:
<?php // 获取查询字符串 $query = $_GET['query']; // 连接到数据库 $conn = new mysqli("localhost", "my_user", "my_password", "my_db"); // 准备 SQL 查询 $stmt = $conn->prepare("SELECT suggestion FROM suggestions WHERE suggestion LIKE ?"); // 绑定查询参数 $stmt->bind_param("s", "%$query%"); // 执行查询 $stmt->execute(); // 获取结果 $result = $stmt->get_result(); // 逐行读取结果并将其转换为 JSON $suggestions = array(); while ($row = $result->fetch_assoc()) { $suggestions[] = $row['suggestion']; } $json = json_encode($suggestions); // 返回 JSON 响应 header("Content-Type: application/json"); echo $json; ?>
客戶端腳本
接下來,我們需要一個客戶端腳本來發送Ajax 請求並顯示建議。建立一個名為autocomplete.js
的檔案並新增以下程式碼:
// 获取搜索输入元素 const searchInput = document.getElementById("search-input"); // 添加事件监听器以在按键盘键时触发 searchInput.addEventListener("keyup", function(event) { // 获取查询字符串 const query = searchInput.value; // 如果查询字符串为空,则显示建议 if (query.length > 0) { // 创建 Ajax 请求 const xhr = new XMLHttpRequest(); xhr.open("GET", "autocomplete.php?query=" + query, true); xhr.onload = function() { // 解析 JSON 响应 const suggestions = JSON.parse(xhr.responseText); // 显示建议 // ... (由你实现) }; xhr.send(); } });
實戰案例
為了使用自動完成建議引擎,你可以在HTML 頁面中包含上述腳本檔案並為search-input
元素新增識別碼。在 autocomplete.php
腳本中,你需要將資料庫連線參數變更為與你的資料庫設定相符。
執行引擎
將 autocomplete.php
和 autocomplete.js
檔案上傳到你的伺服器。造訪包含 search-input
元素的 HTML 頁面,並開始輸入一個查詢字串。你應該會看到匹配查詢的建議。
以上是PHP 與 Ajax:建立一個自動完成建議引擎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Stock Market GPT
人工智慧支援投資研究,做出更明智的決策

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

toupdateadatabaseRecordInphp,firstConnectusingpDoormySqli,thenusepreparedStatementStoExecuteAsecuteAsecuresqurupDatequery.example.example:$ pdo = newpdo(“ mySql:mysql:host = localHost; localhost; localhost; dbname; dbname = your_database = your_database',yous_database',$ username,$ username,$ squeaste;

usefileperms()togetFilePermissionsasanIntegerAntegatusingsPrintf('%o')

單例模式確保一個類只有一個實例,並提供全局訪問點,適用於需要單一對象協調系統操作的場景,如數據庫連接或配置管理。 2.其基本結構包括:私有的靜態屬性存儲實例、私有構造函數防止外部創建、私有克隆方法防止複制,以及公共靜態方法(如getInstance())用於獲取實例。 3.在PHP中通過調用getInstance()方法獲取唯一實例,無論調用多少次都返回同一對象引用。 4.標準PHP請求模型下無需考慮線程安全,但在長運行或多線程環境中需注意同步問題,而PHP本身不支持原生鎖機制。 5.儘管單例有用,但會

使用$argv和$argc獲取PHP命令行參數,$argc為參數數量,$argv為參數數組,如phpscript.phphelloworld中$argc=3,$argv=['script.php','hello','world'];用$argv[1]等訪問具體參數;複雜場景可用getopt()處理短選項(-f)和長選項(--file)。

答案:PHP的空合併操作符(??)用於檢查變量或數組鍵是否存在且非null,若成立則返回其值,否則返回默認值。它可避免使用冗長的isset()檢查,適用於處理未定義變量和數組鍵,如$username=$userInput??'guest',且支持鍊式調用,如$theme=$userTheme??$defaultTheme??'dark',特別適合表單、配置和用戶輸入處理,但僅排除null值,空字符串、0或false均被視為有效值返回。

使用$_GET獲取URL參數,如?name=John&age=25;通過isset或空合併運算符檢查存在性,並用filter_input過濾和驗證數據以確保安全。

UsEtheziparchiveclasStocreateAzipfileInphPbyInstantiatingTheObject,OpenthearchErearchiveWithOpen(),AddingfilesviaAddfile()oradddfromstring(),and closingingitWithClose()和closingitwithClose()

使用json_encode()函數可將PHP數組或對象轉換為JSON字符串。例如,關聯數組["name"=>"John","age"=>30,"city"=>"NewYork"]經json_encode()後輸出{"name":"John","age":30,"city":"NewYork&
