欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Ajax实现三级联动

程序员文章站 2024-03-05 15:22:49
...

前言
demo的后台用的Servlet+JSP+JDBC+MVC的架构。(最近在学。。。)

数据库

在网上找的全国省市县的数据sql文件
https://pan.baidu.com/s/1TAc5AgsnbVbo8qqMDD2HlQ
提取码:demj
Ajax实现三级联动

后端

后端随意编写,只要返回JSON数据即可。

前端

后端传回JSON格式。

<%--
  Created by IntelliJ IDEA.
  User: hetao
  Date: 2020/4/2
  Time: 10:36
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<script src="js/vendor/jquery-1.12.4.min.js"></script>
<body>
<div style="width: 1000px;margin: 200px auto auto;">
    <label for="sheng"></label><select name="" id="sheng" style="width: 200px;height: 30px;"></select>
    <label for="city"></label><select name="" id="city" style="width: 200px;height: 30px;"></select>
    <label for="xian">县、区</label><select name="" id="xian" style="width: 200px;height: 30px;"></select></div>

</body>
<script>
    $(function () {
        $.get("area", {parent_id: "000000"}, function (data) {
            const province = $("#sheng");
            province.empty();
            const area = eval("data=" + data);
            for (let i = 0; i < area.length; i++) {
                province.append("<option value='" + area[i].cri_code + "'>" + area[i].cri_name + "</option>");
            }
        });
        $("#sheng").trigger("change");
    })

    //加载完成,添加监听事件
    $("#sheng").change(function () {
        //发起ajax请求
        const parent_id = $("#sheng").val();
        $.get("area", {parent_id: parent_id}, function (data) {
           const city = $("#city");
           city.empty();
           const cites = eval("data="+data);
           for (let i =0;i<cites.length;i++){
               city.append("<option value='"+ cites[i].cri_code+"'>"+cites[i].cri_name+"</option>");
           }

        });

        $("#city").trigger("change");
    });

    $("#city").change(function () {
        const super_code = $("#city").val();
        $.get("area",{parent_id:super_code},function (data) {
            const xian = $("#xian");
            xian.empty();
            const xians = eval("data="+data);
            for (let i=0;i<xians.length;i++){
                xian.append("<option value='"+ xians[i].cri_code+"'>"+xians[i].cri_name+"</option>");
            }
        })
    })

</script>
</html>


效果实现

Ajax实现三级联动

相关标签: JavaEE