卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章64336本站已运行4115

PHP 与 Ajax:构建一个自动完成建议引擎

使用 php 和 ajax 构建自动完成建议引擎:服务器端脚本:处理 ajax 请求并返回建议 (autocomplete.php)。客户端脚本:发送 ajax 请求并显示建议 (autocomplete.js)。实战案例:在 html 页面中包含脚本并指定 search-input 元素标识符。

PHP 与 Ajax:构建一个自动完成建议引擎

PHP 与 Ajax:构建一个自动完成建议引擎

引言

自动完成建议引擎是一个有用的工具,它可以帮助用户在输入字段中查找建议。它通常用于搜索栏、地址字段和其他文本输入区域。本文将指导你使用 PHP 和 Ajax 构建一个自动完成建议引擎。

服务器端脚本

首先,我们需要一个 PHP 脚本来处理 Ajax 请求并返回建议。创建一个名为 autocomplete.php 的文件并添加以下代码:

<?php
// 获取查询字符串
$query = $_GET['query'];

// 连接到数据库
$conn = new <a style='color:#f60; text-decoration:underline;' href="https://www.php.cn/zt/15713.html" target="_blank">mysql</a>i("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 页面,并开始输入一个查询字符串。你应该会看到匹配查询的建议。

卓越飞翔博客
上一篇: Go并发编程:资源管理与锁的使用
下一篇: Golang在教育科技领域的应用探索
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏