php+ajax做仿百度搜索下拉自动提示框(有实例)

我们来详细讲解如何用PHP和AJAX做出仿百度搜索下拉自动提示框。

1. 准备工作

首先,需要保证本地计算机已经安装了 PHP 和 Apache 服务器。另外,需要一个文本编辑器来编写代码。

2. 编写 HTML 文件

在本地计算机上,创建一个 HTML 文件,并在文件中添加一个文本框作为搜索框。HTML代码结构如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>仿百度搜索下拉自动提示框</title>
</head>
<body>
  <input type="text" id="searchBox" placeholder="请输入搜索内容">
  <ul id="searchResult"></ul>
</body>
</html>

这里的搜索框使用了<input>元素,其id为“searchBox”。用于展示搜索建议的列表使用了<ul>元素,其id为“searchResult”。

3. 编写 PHP 文件

在本地计算机上,创建一个 PHP 文件,用于处理搜索框中的输入并返回匹配的搜索建议。PHP文件代码结构如下:

<?php

$search =$_GET["search"];

$conn = new mysqli("localhost", "username", "password", "database_name");

$sql = "SELECT * FROM searchtable WHERE keyword LIKE '%$search%'";
$result = $conn->query($sql);

$data = array();

while ($row = $result->fetch_assoc()) {
    $data[] = $row;
}

echo json_encode($data);

?>

这里的$search是通过 GET 方法获取的搜索框中的输入。然后,从数据库中获取与输入相匹配的搜索建议,并将结果存储在一个数组中。最后,将结果以JSON格式返回给前端。

4. 编写 AJAX 请求

在本地计算机上,创建一个 JavaScript 文件,并使用 AJAX 技术从 PHP 文件中获取搜索建议。JavaScript代码结构如下:

var searchBox = document.getElementById("searchBox");
var searchResult = document.getElementById("searchResult");

searchBox.onkeyup = function() {
    var search = searchBox.value;
    var xhr = new XMLHttpRequest();
    xhr.open("GET", "search.php?search=" + search, true);
    xhr.send();
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4 && xhr.status == 200) {
            var data = JSON.parse(xhr.responseText);
            var html = "";
            for (var i = 0; i < data.length; i++) {
                html += "<li>" + data[i]["keyword"] + "</li>";
            }
            searchResult.innerHTML = html;
        }
    }
}

这里,使用了XMLHttpRequest对象来发起 AJAX 请求。每次搜索框内输入字符的时候,就会通过 AJAX 请求向 PHP 文件发送请求,获取与输入相匹配的搜索建议。并将搜索建议展示在搜索框下面,用<li>元素实现列表。

5. 示例说明

下面,我们来介绍两个示例,说明如何应用以上知识。这两个示例都是基于以上的代码来实现的。

示例1:搜索建议带有链接

在数据库中除了储存搜索建议文字外还储存着对应的网址。因此,在搜索建议框下方列出搜索结果时,可以通过嵌套<a>元素来为每一条搜搜建议设置链接。代码结构如下:

var searchBox = document.getElementById("searchBox");
var searchResult = document.getElementById("searchResult");

searchBox.onkeyup = function() {
    var search = searchBox.value;
    var xhr = new XMLHttpRequest();
    xhr.open("GET", "search.php?search=" + search, true);
    xhr.send();
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4 && xhr.status == 200) {
            var data = JSON.parse(xhr.responseText);
            var html = "";
            for (var i = 0; i < data.length; i++) {
                html += "<li><a href='" + data[i]["url"] + "'>" + data[i]["keyword"] + "</a></li>";
            }
            searchResult.innerHTML = html;
        }
    }
}

示例2:搜索建议的过滤

这个示例可以通过对前端JavaScript代码的变更实现。这里展示的是通过将数据大小写转换后再进行模糊匹配实现搜索建议过滤。代码结构如下:

var searchBox = document.getElementById("searchBox");
var searchResult = document.getElementById("searchResult");

searchBox.onkeyup = function() {
    var search = searchBox.value.toLowerCase();
    var xhr = new XMLHttpRequest();
    xhr.open("GET", "search.php?search=" + search, true);
    xhr.send();
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4 && xhr.status == 200) {
            var data = JSON.parse(xhr.responseText);
            var html = "";
            for (var i = 0; i < data.length; i++) {
                var keyword = data[i]["keyword"].toLowerCase();
                if (keyword.indexOf(search) >= 0) {
                    html += "<li>" + data[i]["keyword"] + "</li>";
                }
            }
            searchResult.innerHTML = html;
        }
    }
}

这里的变化在于对搜索框输入的大小写字母进行转换后再进行匹配,达到模糊匹配搜索建议的目的。

这就是使用 PHP 和 AJAX 做出仿百度搜索下拉自动提示框的攻略及示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php+ajax做仿百度搜索下拉自动提示框(有实例) - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • jQuery 中DOM 操作详解

    jQuery 中DOM 操作详解完整攻略 在 jQuery 中,访问和操作 DOM(文档对象模型)是其最基础的功能之一。使用 jQuery,您可以极大地简化访问和操作 DOM 的过程,并使其变得更加方便和优雅。接下来将对 jQuery 中DOM操作进行详细的讲解,包括: 使用 jQuery 选择元素 使用 jQuery 操作元素 使用 jQuery 创建新的…

    jquery 2023年5月27日
    00
  • 超好用的jQuery分页插件jpaginate用法示例【附源码下载】

    说明: 本文主要介绍jQuery分页插件jpaginate的使用方法,并提供了两个使用示例。 1. jpaginate是什么? jpaginate是一个简单易用的jQuery分页插件,可以帮助开发者快速实现分页功能,它完全基于jQuery开发,不依赖于任何其他库,可以很好地与其他jQuery插件进行整合。 2. jpaginate的基本用法 jpaginat…

    jquery 2023年5月28日
    00
  • jQWidgets jqxNotification rtl属性

    以下是关于 jQWidgets jqxNotification 组件中 rtl 属性的详细攻略。 jQWidgets jqxNotification rtl 属性 jQWidgets jqxNotification 组件的 rtl 属性用于设置通知框的文本方向,从右到左或从左到右。 语法 $(‘#notification’).jqxNotification(…

    jquery 2023年5月12日
    00
  • jQuery中的一些常见方法小结(推荐)

    jQuery中的一些常见方法小结(推荐) 概述 本文将介绍一些在jQuery中常用的方法及其使用方式,旨在帮助学习和使用jQuery的开发者更好地理解和应用这些方法。 常见方法 选择器 jQuery最为常用的功能之一就是选择元素并对其进行操作,选择器是实现这一目标的关键。下面列出了一些常见的选择器: 元素选择器:$(‘element’),选中页面中所有匹配特…

    jquery 2023年5月28日
    00
  • 巧用jQuery选择器提高写表单效率的方法

    关于“巧用jQuery选择器提高写表单效率的方法”,我们可以按照以下步骤进行讲解: 1. 选择器基础 首先,我们需要了解jQuery选择器的基础知识。jQuery选择器可以用于选取HTML元素、CSS选择器和自定义的选择器。其中,最简单的选择器是通过元素的tag名来选取元素。 例如,我们可以使用下面的代码选取所有的input元素: var inputs = …

    jquery 2023年5月27日
    00
  • jQuery ajax应用总结

    jQuery Ajax 应用总结 1. jQuery Ajax 简介 jQuery 是一款十分流行的 JavaScript 开源库,拥有强大的选择器、插件和操作 DOM 的能力,而其中最常用的就是 Ajax。 在 Web 开发中,Ajax 是一种无需重新加载页面即可更新数据的方法。jQuery Ajax 是指使用 jQuery 库来实现 Ajax,它能够使得…

    jquery 2023年5月27日
    00
  • jQuery UI Autocomplete关闭事件

    jQuery UI 的 Autocomplete 组件提供了一个 close 事件,该事件在 Autocomplete 菜单关闭时触发。在本教程中,我们将详细介绍 Autocomplete 的 close 事件的使用方法。 close 事件基本语法如: $( ".selector" ).autocomplete({ close: func…

    jquery 2023年5月11日
    00
  • jQuery Select下拉框操作小结(推荐)

    jQuery Select下拉框操作小结 本篇文章将详细讲解如何使用jQuery操作下拉框。 获取下拉框的值 下拉框的值可以通过以下方式获取: // 获取下拉框的选中值 var selectedValue = $("#selectId").val(); console.log(selectedValue); 其中,#selectId表示下…

    jquery 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部