jQuery ajax+PHP实现的级联下拉列表框功能示例

下面是“jQuery ajax+PHP实现的级联下拉列表框功能示例”的完整攻略。

级联下拉列表框实现原理

级联下拉列表框是指一个下拉列表框的选项改变时,另一个下拉列表框的选项也相应改变。实现它的原理是通过jQuery的ajax请求与PHP后端的处理来实现动态的更新操作。具体过程如下:

  1. 当第一个下拉列表框的选项改变时,绑定一个事件监听器。
  2. 在监听器回调函数中,使用jQuery的ajax()函数和选中的选项参数向PHP后端发起一个POST请求。请求中包含所选参数值。
  3. PHP后端接收到请求后,根据传递的参数值查询相应的数据,并返回需要更新的选项列表。
  4. 在前端页面中,解析得到的选项数据,并使用Javascript更新第二个下拉列表框的选项列表。如果列表中已经有选中的项,更新后还需将其清空。

示例说明一

在实现级联下拉列表框功能的过程中,你需要在前端HTML中编写页面,并引入jQuery和PHP处理代码。首先,你需要在HTML页面中插入下面的代码:

<select id="province">
  <option value="">请选择</option>
  <option value="浙江">浙江省</option>
  <option value="广东">广东省</option>
</select>
<select id="city">
  <option value="">请选择</option>
</select>
<!-- 引入jQuery库 -->
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<!-- 引入公共JS -->
<script src="js/common.js"></script>

其中,第一个下拉列表框的ID为"province",第二个下拉列表框的ID为"city"。在选择省份时,需加载对应的城市列表。

接下来,在公共JS文件"common.js"中编写jquery代码:

$(function() {
  $("#province").change(function() {
    var province = $(this).val();  // 获取所选省份的值
    if (province) {
      $.ajax({
        url: "getCity.php",  // 后端PHP文件的路径
        data: {province: province},  // 传参:所选省份名
        type: "POST",
        dataType: "json",
        success: function(data) {  // 请求成功时的处理函数
          var html = '<option value="">请选择</option>';
          for (var i = 0; i < data.length; i++) {
            html += '<option value="'+data[i]+'">'+data[i]+'</option>';
          }
          $("#city").html(html);  // 更新城市下拉列表框
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {  // 请求失败时的处理函数
          alert(XMLHttpRequest.status);
          alert(XMLHttpRequest.readyState);
          alert(textStatus);
        }
      });
    } else {
      $("#city").html('<option value="">请选择</option>');
    }
  });
});

这段代码的作用是:当第一个下拉列表框的选项改变时,向PHP后端发起POST请求,并将所选省份的值传递过去。并根据得到的更新数据,用Javascript语言更新第二个下拉列表框的选项内容。

最后,在后端处理文件"getCity.php"中编写以下代码。

<?php
$province = $_POST['province'];  // 获取前端传过来的省份名

// 访问数据库,并查询对应的城市列表
$conn = mysqli_connect("localhost", "root", "password", "db");
mysqli_query($conn, "SET NAMES utf8");
$sql = "SELECT city FROM table WHERE province='".$province."'";
$result = mysqli_query($conn, $sql);
$res = array();
while ($row = mysqli_fetch_assoc($result)) {
  $res[] = $row['city'];
}

// 将城市列表以JSON格式返回给前端页面
echo json_encode($res);
?>

这段代码的作用是根据前端传来的省份信息,从数据库中查询出相应的城市列表,并以JSON格式将结果返回给前端。

示例说明二

我们也可以通过键盘的Enter事件,触发查询函数,实现级联下拉列表功能。实现方式如下:

<!-- 输入文本框 -->
<input type="text" id="text">
<!-- 城市下拉列表框 -->
<select id="city">
  <option value="">请选择</option>
</select>
<!-- 引入jQuery库 -->
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<!-- 引入公共JS -->
<script src="js/common.js"></script>
$(function() {
  $("#text").keydown(function(event) {
    if (event.keyCode == 13) {  // 监听Enter键
      var text = $(this).val();  // 获取输入文本的值
      if (text) {
        $.ajax({
          url: "getCityByKey.php",  // 后端PHP文件的路径
          data: {text: text},  // 传参:输入文本值
          type: "POST",
          dataType: "json",
          success: function(data) {  // 请求成功时的处理函数
            var html = '<option value="">请选择</option>';
            for (var i = 0; i < data.length; i++) {
              html += '<option value="'+data[i]+'">'+data[i]+'</option>';
            }
            $("#city").html(html);  // 更新城市下拉列表框
          },
          error: function(XMLHttpRequest, textStatus, errorThrown) {  // 请求失败时的处理函数
            alert(XMLHttpRequest.status);
            alert(XMLHttpRequest.readyState);
            alert(textStatus);
          }
        });
      } else {
        $("#city").html('<option value="">请选择</option>');
      }
    }
  });
});

这段代码的作用是:当用户输入完城市信息后,按下Enter键后,向PHP后端发起POST请求,并将所输入的文本值传递过去。并根据得到的更新数据,用Javascript语言更新第二个下拉列表框的选项内容。

最后,在后端处理文件"getCityByKey.php"中编写以下代码。

<?php
$key = $_POST['text'];  // 获取前端传过来的查询键值

// 访问数据库,并查询对应的城市列表
$conn = mysqli_connect("localhost", "root", "password", "db");
mysqli_query($conn, "SET NAMES utf8");
$sql = "SELECT city FROM table WHERE city LIKE '%".$key."%'";
$result = mysqli_query($conn, $sql);
$res = array();
while ($row = mysqli_fetch_assoc($result)) {
  $res[] = $row['city'];
}

// 将城市列表以JSON格式返回给前端页面
echo json_encode($res);
?>

这段代码的作用是根据用户输入的查询关键词,从数据库中查询出相应的城市列表,并以JSON格式将结果返回给前端。

以上就是“jQuery ajax+PHP实现的级联下拉列表框功能示例”的完整攻略,请仔细阅读。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery ajax+PHP实现的级联下拉列表框功能示例 - Python技术站

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

相关文章

  • jQWidgets jqxTreeGrid ready属性

    以下是关于 jQWidgets jqxTreeGrid 组件中 ready 属性的详细攻略。 jQWidgets jqxTreeGrid ready 属性 jQWidgets jqxTreeGrid 的 ready 属性用于在 TreeGrid 控件准备好后执行回调函数。可以使用此属性来在 TreeGrid 控件准备好后执行一些初始化操作。 语法 $(‘#t…

    jquery 2023年5月12日
    00
  • jQuery UI的Selectmenu open事件

    jQuery UI的Selectmenu open事件详解 jQuery UI的Selectmenu是一个下拉菜单插件,它允许用户从预定义的选项中进行选择。在本文中,我们将详细介绍Selectmenu的open事件的用法和示例。 open事件 open事件是Selectmenu插件中的事件,它在选择菜单打开时触发。可以使用该事件菜单打开时执行一些操作。 语法…

    jquery 2023年5月11日
    00
  • jQuery UI滑块value选项

    以下是关于 jQuery UI 滑块 value 选项的详细攻略: jQuery UI 滑块 value 选项 value 选项用于设置滑块的初始值。当滑块被初始化时,可以通过设置 value 选项指定滑块的初始值。 语法 $( ".selector" ).slider({ value: value }); 其中,value 为要设置的初…

    jquery 2023年5月11日
    00
  • jQuery slideDown()方法

    jQuery slideDown()方法可以使元素以滑动的形式显示出来。下面是使用该方法的完整攻略: 语法 $(selector).slideDown(speed,callback); 参数说明 selector: 必需,用于指定要执行滑动效果的元素。 speed(可选): 设置滑动效果持续的时间,单位为毫秒(ms),默认值为400。 callback(可选…

    jquery 2023年5月12日
    00
  • jQuery UI Datepicker yearSuffix选项

    以下是关于 jQuery UI 的 Datepicker yearSuffix 选项的完整攻略: jQuery UI 的 Datepicker yearSuffix 选项 在 jQuery UI 中,可以使用 datepicker 方法创建一个日期选择器。yearSuffix 选项可以指定年份后缀。 语法 $(selector).datepicker({ y…

    jquery 2023年5月11日
    00
  • jQWidgets jqxGrid getdisplayrows()方法

    以下是关于“jQWidgets jqxGrid getdisplayrows()方法”的完整攻略,包含两个示例说明: 简介 jqxGrid 控件的 getdisplayrows() 方法用于获取表格中当前显示的行。该方法可以于获取当前页的行数、行数据等信息。 完整攻略 以下是 jqxGrid 控件 getdisplayrows() 方法的完整攻略: 获取当前…

    jquery 2023年5月10日
    00
  • jQWidgets jqxGrid horizontalscrollbarstep属性

    jQWidgets jqxGrid horizontalscrollbarstep 属性详解 jQWidgets jqxGrid 是一种表格控件,用于在 Web 应用程序中创建表格。horizontalscrollbarstep 属性是 jqxGrid 控件的一个属性,用于设置水平滚动条的步长。本文将详细讲解 horizontalscrollbarstep …

    jquery 2023年5月10日
    00
  • jQuery UI Dialog类选项

    当使用jQuery UI Dialog类时,可以使用Dialog类选项来设置对话框的各种属性和行为。以下是详细的攻略,包含两个示例,演示如何使用Dialog类选项: 步骤1:引入库 在使用之前,需要先在HTML文件中引入jQuery库和jQuery UI库。可以通过以下方式引入: <link rel="stylesheet" hre…

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