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日

相关文章

  • jQuery UI的Draggable scope选项

    以下是关于 jQuery UI 的 Draggable scope 选项的详细攻略: jQuery UI Draggable scope 选项 scope 选项用于指定可拖动元素的范围。可以使用该选项来限制可拖动元素的拖动范围。 语法 $(selector).draggable({ scope: "scopeName" }); 参数 sc…

    jquery 2023年5月11日
    00
  • jQuery Mobile Pagecontainer beforetransition事件

    jQuery Mobile是一个非常优秀的JavaScript库,其中PageContainer是其提供的一个管理页面的API。通过监听PageContainer的beforetransition事件,我们可以在页面切换前进行一些额外的操作。 beforetransition事件说明 beforetransition事件在每次页面切换前被触发,可以通过注册事…

    jquery 2023年5月12日
    00
  • 使用数据表格进行分页

    使用数据表格进行分页的完整攻略如下: 步骤一:准备数据 首先需要从数据库中查询出数据,可以使用如下的 SQL 语句来查询某张表中的所有数据: SELECT * FROM table_name; 然后将查询结果保存到一个数组或列表中。 步骤二:渲染表格 使用 html 和 css 创建一个表格,每行显示一条数据。当数据过多时,可以使用滚动条进行浏览。一个示例的…

    jquery 2023年5月13日
    00
  • jQuery UI Sortable distance选项

    jQuery UI Sortable distance选项详解 jQuery UI Sortable是一个排序插件,它允许用户通过拖动元素来重新排序。在本文中,我们将详细介Sortable distance选项的用法和示例。 distance选项 distance选项是Sortable插件的一个选项,它于设置拖动元素的离。当拖动元素的距离小于distance…

    jquery 2023年5月11日
    00
  • 详解JavaScript异步编程中jQuery的promise对象的作用

    详解JavaScript异步编程中jQuery的promise对象的作用 异步编程与回调函数的问题 在JavaScript中,异步编程是常见的一种编写方式,它可以使程序不会因为等待I/O等操作而被阻塞。多数异步回调函数根据I/O的准备情况来激活。然而,当多个异步操作需要协同完成时,使用回调函数的方式会导致回调嵌套的层数加深,同时代码的可读性大大降低。 Pro…

    jquery 2023年5月27日
    00
  • jQWidgets jqxFileUpload render()方法

    jQWidgets jqxFileUpload render() 方法 jQWidgets是一个基于jQuery的UI组件库,提供了丰富的UI组件和工具包括表格、日、下拉菜单等。jqxFileUpload是jQWidgets中的一个组件,用于实现文件上传功能。render()方法是jqxFileUpload中的一个方法,用于渲染组件。 render()方法的…

    jquery 2023年5月9日
    00
  • jQWidgets jqxTabs ensureVisible()方法

    jQWidgets jqxTabs是一个基于jQuery的分页组件。其中,ensureVisible()方法是jqxTabs中的一个方法,用于确保指定的标签页可见。下面将详细介绍该方法的攻略。 概述 ensureVisible()方法是jqxTabs中用来确保标签页可视的函数。具体而言,该方法会将指定的标签页滑动到屏幕上可视区域中。当有很多标签页时,可以使用…

    jquery 2023年5月12日
    00
  • 如何使用HTML CSS和JavaScript创建图片灯箱画廊

    创建图片灯箱画廊通常采用的技术包含了HTML、CSS和JavaScript三种语言。下面我们将详细讲解如何使用这三种语言来创建图片灯箱画廊。 创建HTML代码 我们先来创建HTML代码,在HTML中包含了整个网页的结构和内容信息。在创建HTML时,常规做法是先创建一个HTML模板,在模板中包含了网页的基本信息。代码示例如下: <!doctype htm…

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