jquery自动完成插件(autocomplete)应用之PHP版

下面我将为您讲解“jQuery自动完成插件(autocomplete)应用之PHP版”的完整攻略。

一、jQuery自动完成插件(autocomplete)简介

jQuery自动完成插件(autocomplete)能够自动完成文本框中输入的内容,同时提供下拉列表,并支持鼠标、键盘等多种交互方式。而我们使用它的PHP版本是jQuery UI的自带模块,因此我们使用前需要先下载jQuery UI,同时需要导入相关的样式和脚本。

二、如何使用jQuery自动完成插件(autocomplete)应用?

1. 导入相关的资源文件

在使用jQuery自动完成插件之前,我们需要先将其相关的样式表和脚本文件进行引用。在此,我们以CDN的方式引入jQuery和jQuery UI的资源文件。

<head>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css" />
  <script src="//code.jquery.com/jquery-3.2.1.min.js"></script>
  <script src="//code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</head>

2. 创建文本框

下一步,我们需要在页面中创建一个文本框,用户可以在该文本框中输入其需要搜索的信息。同时,我们需要使用jQuery UI中的autocomplete方法,并进行初始化设置。

<body>
  <input id="txtSearch" type="text" />
</body>
$(function(){
  // 使用jQuery UI autocomplete方法
  $('#txtSearch').autocomplete({
    // 提示列表的最大长度
    minLength: 1,
    // 从服务器中获取数据
    source: function(request, response){
      $.ajax({
        url: "search.php",  // 请求的地址
        dataType: "json",  // 返回的数据类型
        data: {  // 发送到服务器的数据
          search: request.term
        },
        success: function(data){  // 数据加载成功后的回调函数
          response(data);  // 将服务器返回的结果交给自动完成框进行显示
        }
      });
    }
  });
});

3. 处理搜索请求

接下来,在服务器端我们需要处理用户搜索请求,然后返回符合条件的结果。在此,我们假设我们的数据储存在MySQL数据库中,我们可以通过PHP代码读取数据库中的信息,并按照用户的搜索条件进行筛选,最终将筛选后的结果通过JSON格式返回给前端页面。

<?php
// 连接数据库
$conn = mysqli_connect("localhost", "user", "password") or die(mysqli_error());

// 选择数据库
mysqli_select_db($conn, "database_name");

// 读取用户输入的搜索条件
$search = $_GET['search'];

// 执行查询
$query = "SELECT * FROM table_name WHERE column_name LIKE '%" . $search . "%'";
$result = mysqli_query($conn, $query) or die(mysqli_error());

// 将查询结果分装成JSON格式,并返回给前端页面
$return = array();
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){

  $data = array('id' => $row['id'], 'value' => $row['value']);

  array_push($return, $data);
}

echo(json_encode($return));
?>

这样,我们就实现了一个简易的jQuery自动完成插件(autocomplete)应用的示例程序。

三、示例说明

示例1:基本实现

在本示例中,我们创建一个文本框作为搜索框,当用户输入其需要搜索的信息时,我们将借助jQuery自动完成插件,从服务器端动态加载已有数据,并将其以列表的形式展示给用户。

待搜索HTML代码:

<body>
  <input id="txtSearch" type="text" />
</body>

jQuery代码:

$(function(){
  // 使用jQuery UI autocomplete方法
  $('#txtSearch').autocomplete({
    // 提示列表的最大长度
    minLength: 1,
    // 从服务器中获取数据
    source: function(request, response){
      $.ajax({
        url: "search.php",  // 请求的地址
        dataType: "json",  // 返回的数据类型
        data: {  // 发送到服务器的数据
          search: request.term
        },
        success: function(data){  // 数据加载成功后的回调函数
          response(data);  // 将服务器返回的结果交给自动完成框进行显示
        }
      });
    }
  });
});

PHP代码:

<?php
// 连接数据库
$conn = mysqli_connect("localhost", "user", "password") or die(mysqli_error());

// 选择数据库
mysqli_select_db($conn, "database_name");

// 读取用户输入的搜索条件
$search = $_GET['search'];

// 执行查询
$query = "SELECT * FROM table_name WHERE column_name LIKE '%" . $search . "%'";
$result = mysqli_query($conn, $query) or die(mysqli_error());

// 将查询结果分装成JSON格式,并返回给前端页面
$return = array();
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){

  $data = array('id' => $row['id'], 'value' => $row['value']);

  array_push($return, $data);
}

echo(json_encode($return));
?>

在这个示例中,我们将用户输入的关键字以search的参数名发送给PHP后端程序,在PHP中,我们将用户输入的关键字作为查询条件,并将查询结果组装成JSON格式返回给前端页面,在前端页面中,通过调用jQuery UI中的autocomplete方法实现提示信息的展示。

示例2:未输入关键字时默认展示全部信息

在本示例中,我们在用户未输入关键字时,默认展示全部信息。

待搜索HTML代码:

<body>
  <input id="txtSearch" type="text" />
</body>

jQuery代码:

$(function(){
  // 使用jQuery UI autocomplete方法
  $('#txtSearch').autocomplete({
    // 提示列表的最大长度
    minLength: 0,
    // 从服务器中获取数据
    source: function(request, response){
      $.ajax({
        url: "search.php",  // 请求的地址
        dataType: "json",  // 返回的数据类型
        data: {  // 发送到服务器的数据
          search: request.term
        },
        success: function(data){  // 数据加载成功后的回调函数
          response(data);  // 将服务器返回的结果交给自动完成框进行显示
        }
      });
    }
  }).focus(function(){
    $(this).autocomplete("search");
  });
});

PHP代码:

<?php
// 连接数据库
$conn = mysqli_connect("localhost", "user", "password") or die(mysqli_error());

// 选择数据库
mysqli_select_db($conn, "database_name");

// 读取用户输入的搜索条件
$search = isset($_GET['search']) ? $_GET['search'] : '';

// 执行查询
if (!empty($search)){
  $query = "SELECT * FROM table_name WHERE column_name LIKE '%" . $search . "%'";
  $result = mysqli_query($conn, $query) or die(mysqli_error());

  // 将查询结果分装成JSON格式,并返回给前端页面
  $return = array();
  while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){

    $data = array('id' => $row['id'], 'value' => $row['value']);

    array_push($return, $data);
  }
}else{
  $query = "SELECT * FROM table_name";
  $result = mysqli_query($conn, $query) or die(mysqli_error());

  // 将查询结果分装成JSON格式,并返回给前端页面
  $return = array();
  while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){

    $data = array('id' => $row['id'], 'value' => $row['value']);

    array_push($return, $data);
  }
}

echo(json_encode($return));
?>

在这个示例中,我们在jQuery代码中对minLength进行了修改,使其在用户未输入关键字时也可以进行搜索,此外,我们在focus事件中,调用了autocomplete方法的search方法,以便在用户激活搜索框时,能够立即显示全部的信息。在PHP代码中,我们判断了用户是否输入了关键字,如没有,则直接返回全部信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jquery自动完成插件(autocomplete)应用之PHP版 - Python技术站

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

相关文章

  • jQWidgets jqxTreeGrid updating()方法

    以下是关于 jQWidgets jqxTreeGrid 组件中 updating() 方法的详细攻略。 jQWidgets jqxTreeGrid updating() 方法 jQWidgets jqxTreeGrid 的 updating() 方法用于在更新行数据之前执行操作。您可以使用此方法来验证数据、执行其他操作或取消更新操作。 语法 $(‘#tree…

    jquery 2023年5月12日
    00
  • jQuery简单设置文本框回车事件的方法

    为了详细讲解jQuery简单设置文本框回车事件的方法,我们需要掌握以下知识点: jQuery选择器 jQuery绑定事件 JavaScript事件对象 jQuery事件函数 接下来,我将逐一讲解这些知识点,并且结合实例进行说明。 首先,我们需要使用jQuery选择器,选择需要绑定回车事件的文本框。常见的选择器有ID选择器、Class选择器、属性选择器等。例如…

    jquery 2023年5月28日
    00
  • JQuery 选项卡效果(JS与HTML的分离)

    JQuery 选项卡效果(JS与HTML的分离)是一种常见的web网页效果,本攻略将详细讲解JQuery选项卡效果的步骤,并提供两个实例说明。 一、HTML结构 选项卡效果的HTML结构需要包含选项卡列表,以及每个选项卡对应的内容。 <div class="tab"> <ul class="tab-nav&qu…

    jquery 2023年5月28日
    00
  • jQuery中对节点进行操作的相关介绍

    当我们使用 jQuery 处理 DOM 元素时,我们需要知道如何选择元素并对它们应用各种操作。 1. 选择元素 我们可以使用以下方法来选择元素: 根据标签名选择元素: $("tagname") 根据class选择元素: $(".classname") 根据id选择元素: $("#idname") 层…

    jquery 2023年5月28日
    00
  • jQWidgets jqxFormattedInput selectFirst()方法

    jQWidgets jqxFormattedInput selectFirst()方法 jQWidgets是一个基于jQuery的UI组件库,提供了丰富的UI件和工具,包括表格、图、历、菜单等。jqxFormattedInput是jQWidgets中的一个组件,可以用于输入和格式化数字、货币、日期等。jqxFormattedInput提供了selectFir…

    jquery 2023年5月9日
    00
  • 如何用jQuery改变下拉列表的选定值

    要用 jQuery 改变下拉列表的选定值,可以通过设置下拉列表的选中选项来实现。 首先,需要获取下拉列表元素的 jQuery 对象,然后设置其选中选项的值,可以调用 .val() 方法来实现。具体步骤如下: 获取下拉列表元素的 jQuery 对象 可以使用元素选择器 $(‘选择器’) 来获取,选择器中填写下拉列表元素的 id、class 或标签名。 示例代码…

    jquery 2023年5月12日
    00
  • jQuery实现简单日历效果

    下面为大家详细讲解如何使用jQuery实现简单日历效果。 1. 准备工作 在开始之前,需要准备好以下的工作: 引入jQuery库 在页面中引入jQuery库,可以使用cdn加速库的方式,例如: <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js&q…

    jquery 2023年5月29日
    00
  • jQWidgets jqxNumberInput focus()方法

    以下是关于 jQWidgets jqxNumberInput 组件中 focus() 方法的详细攻略。 jQWidgets jqxNumberInput focus() 方法 jQWidgets jqxNumberInput 组件的 focus() 方法用于将焦点设置到组件上。 语法 $(‘#numberInput’).jqxNumberInput(‘foc…

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