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

yizhihongxing

我们来详细讲解如何用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日

相关文章

  • jQWidgets jqxTreeGrid showSubAggregates属性

    以下是关于 jQWidgets jqxTreeGrid 组件中 showSubAggregates 属性的详细攻略。 jQWidgets jqxTreeGrid showSubAggregates 属性 jQWidgets jqxTreeGrid 的 showSubAggregates 属性用于控制是否显示子级别的汇总信息。子级别汇总信息是指在树形结构中,每…

    jquery 2023年5月12日
    00
  • 基于jquery步骤进度条源码分享

    关于“基于jquery步骤进度条源码分享”的完整攻略,我将从以下几个方面进行讲解: 一、什么是jquery步骤进度条? jquery步骤进度条是一款基于jquery实现的进度条效果,可以用于展示多个步骤的进度,并且可以根据用户不断地操作和反馈自动更新进度。 该进度条的实现方式,在页面上使用一个容器元素,通过不断向该容器增加或删除进度节点来控制进度条的前进或后…

    jquery 2023年5月28日
    00
  • jQWidgets jqxTreeMap源属性

    让我为您详细讲解“jQWidgets jqxTreeMap源属性”的完整攻略。 什么是 jqxTreeMap 源属性 jqxTreeMap 是 jQWidgets 提供的一个交互式树形结构图的插件,可以用于展示某一层级下各项数据的比例、占比等信息。 在使用 jqxTreeMap 进行数据可视化时,通过设置 jqxTreeMap 的源属性,可以动态地指定数据的…

    jquery 2023年5月12日
    00
  • jQWidgets jqxComboBox取消选择事件

    以下是关于“jQWidgets jqxComboBox取消选择事件”的完整攻略,包含两个示例说明: 简介 jqxComboBox 控件提供了 unselect 事件,该事件在取消选择下拉列表中的项时触发。通过使用 unselect 事件,可以在代码中动态取消选择下拉列表中的选项。 详细攻略 以下是 jqx 控件 unselect 事件的详细攻略: unsel…

    jquery 2023年5月11日
    00
  • JS实现的新闻列表自动滚动效果示例

    JS实现新闻列表自动滚动效果是一个常见的网页特效,它能够高效地展示网站上的新闻、文章、产品等信息,提高网站信息展示的效率和吸引度。在此,我将为大家介绍如何实现一个JS自动滚动效果,并提供两个实例说明来帮助大家更好地理解和应用。 准备工作 在开始制作自动滚动效果之前,我们需要先准备好一些工具和素材: 基于HTML和CSS的网页布局和样式 JavaScript代…

    jquery 2023年5月27日
    00
  • jQWidgets jqxScrollBar值属性

    以下是关于 jQWidgets jqxScrollBar 组件中值属性的详细攻略。 jQWidgets jqxScrollBar 值属性 jQWidgets jqxScrollBar 组件的值属性用于设置或获取滚动条的当前值。 语法 // 获取滚动条的当前值 var value = $(‘#scrollBar’).jqxScrollBar(‘getValue…

    jquery 2023年5月12日
    00
  • JQuery中的html()、text()、val()区别示例介绍

    下面是详细的攻略: 标题 JQuery中的html()、text()、val()区别示例介绍 介绍 JQuery是一个非常流行的JavaScript库,提供了许多实用的方法。其中三个常用的方法是html()、text()和val(),用于操作HTML元素的内容。 区别 html() html()方法用于获取或设置HTML元素的内容。如果不传参数,则返回第一个…

    jquery 2023年5月27日
    00
  • jQWidgets jqxPivotGrid scrollBarsEnabled属性

    以下是关于 jQWidgets jqxPivotGrid 组件中 scrollBarsEnabled 属性的详细攻略。 jQWidgets jqxPivotGrid scrollBarsEnabled 属性 jQWidgets jqxPivotGrid 组件的 scrollBarsEnabled 属性用于控制数据透视表是否显示滚动条。该属性可以用于在数据透视…

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