首先准备数据库只有一张表

分析数据库根据 parentid来查

jsp代码 servlet代码

<%--
Created by IntelliJ IDEA.
User: 60590
Date: 2019/12/4
Time: 20:26
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<base href=<%= request.getContextPath()%>/>
<script src="js/jquery-1.9.1.js"></script>
<script>
//当页面加载时执行change1方法来获取省 使用jq中的ajax 简洁方式
function change1() {
$.post("servlet/AreaServlet","id=0",function (result) {
//遍历集合
for (var i in result){
//获取标签 append 可以识别标签
$("#pro").append("<option value='"+result[i].areaid+"'>"+result[i].areaname+"</option>")
}
},"json");
}
//当省改变时 执行此方法 并且把当前省的value传进来
function change2(val) {
$.post("servlet/AreaServlet","id="+val,function (result) {
$("#city").html("<option>--请选择--</option>");
for (var i in result){
$("#city").append("<option value='"+result[i].areaid+"'>"+result[i].areaname+"</option>")
}
},"json");
}
//当市改变时 执行此方法
function change3(val) {
$.post("servlet/AreaServlet","id="+val,function (result) {
$("#con").html("<option>--请选择--</option>");
for (var i in result){
$("#con").append("<option value='"+result[i].areaid+"'>"+result[i].areaname+"</option>")
}
},"json");
}
</script>
</head>
<body onload="change1()">
省:<select id="pro" onchange="change2(this.value)">
<option>---请选择---</option>
</select>
市:<select id="city" onchange="change3(this.value)">
<option>---请选择---</option>
</select>
县:<select id="con">
<option>---请选择---</option>
</select>
</body>
</html>

  

package com.bjsxt.servlet;

import com.bjsxt.entity.Area;
import com.bjsxt.serviceIml.AreaServiceIml;
import com.google.gson.Gson;
import org.apache.ibatis.annotations.Select; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List; /**
* @program: JavaEE
* @description
* @author: wuhao
* @create: 2019-12-04 20:22
**/
@WebServlet("/servlet/AreaServlet")
public class AreaServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=UTF-8");
//接受参数
String id = req.getParameter("id");
int i = Integer.parseInt(id);
//处理参数
AreaServiceIml areaServiceIml = new AreaServiceIml();
List<Area> list = areaServiceIml.findAll(i); //转换为json 格式 需要导入Gson的jar包
Gson gson = new Gson();
String s = gson.toJson(list);
resp.getWriter().print(s); }
}

使用Ajax实现三级联动的更多相关文章

  1. AJAX部分---对比js做日期的下拉选择 和 ajax做三级联动;

    js做日期选择: 实现当前年份的前5后5年的日期选择 实现功能:年份和月份页面加载完成使用JS循环添加,天数根据月份的变化动态添加改变 扩展功能:天数可以根据闰年平年变化 <body> & ...

  2. ajax 实现三级联动

    ajax 实现三级联动,相当于写了一个小插件,用的时候直接拿过来用就可以了,这里我用了数据库中的chinastates表, 数据库内容很多,三级联动里的地区名称都在里面,采用的是代号副代号的方式 比如 ...

  3. 在使用ajax实现三级联动调用数据库数据并通过调出的数据进行二级表单查询

    在使用ajax实现三级联动查询数据库数据后再使用ajax无刷新方式使用三级联动调出的数据进行二级查询 但是现在遇到问题,在二级查询的时候期望是将数据以表格的形式展示在三级联动的下方,但是现在在查询后会 ...

  4. ajax 实现三级联动下拉菜单

    ajax 实现三级联动,相当于写了一个小插件,用的时候直接拿过来用就可以了,这里我用了数据库中的chinastates表, 数据库内容很多,三级联动里的地区名称都在里面,采用的是代号副代号的方式 比如 ...

  5. PHP ajax 实现三级联动

    在一个单独JS页面中,利用ajax实现三级联动,做成一个三级联动形式,以便于以后随时调用 JS代码: $(document).ready(function(e) { $("#sanji&qu ...

  6. ajax省市区三级联动

    jdbc+servlet+ajax开发省市区三级联动 技术点:jdbc操作数据库,ajax提交,字符拦截器,三级联动 特点:局部刷新达到省市区三级联动,举一反三可以做商品分类等 宗旨:从实战中学习 博 ...

  7. 完整的Ajax及三级联动小练习

    Ajax结构: var name = $("#text_1").val(); $.ajax({ url: "Ashxs/Handler.ashx",//一般处理 ...

  8. Ajax实现三级联动(0520)

    查询数据库中的chinastates表,通过父级代号查询相应省市区. 实现界面: 在js页面实现三级联动 在JQuery中调用Ajax方法(引用JQuery文件一定放在最上面) 用插件的形式,创建三个 ...

  9. php+ajax的三级联动下拉菜单

    封装一个三级联动,就可以在任何页面进行引用了 先写个页面引用一下这个js <head> <meta http-equiv="Content-Type" conte ...

  10. 基于jQuery的AJAX实现三级联动菜单

    最近学习jQuery,所以就写了一个关于中国省市县/区的三级联动菜单,权当相互学习,相互促进,特此记录. 下面是嵌套js的html文件: <!DOCTYPE html> <html ...

随机推荐

  1. js中Boolean类型和Number类型的一些常见方法

    Boolean类型 Boolean类型重写了valueOf() 方法, 返回基本布尔类型值true或false,重写了toString() 方法,返回基本字符串"true" 和 & ...

  2. python教程:用简单的Python编写Web应用程序

    python现在已经成为很多程序员关注的编程语言之一,很多程序员也都开始弄python编程,并且很多时候都会用自己的操作来选择,而现在不管是程序员还是少儿编程,都会有python这门课,今天就和大家分 ...

  3. LOJ2401 JOISC2017 Dragon2 计算几何、线段树

    传送门 先考虑每一个攻击方的龙和被攻击方的龙可以与多少个被攻击方/攻击方的龙匹配. 对于攻击方的龙\(A\)和被攻击方的龙\(B\),在道路为线段\((C,D)\)的情况下,能够与下图位置的所有对应属 ...

  4. ELK学习笔记之使用curl命令操作elasticsearch

    0x00 _cat系列 _cat系列提供了一系列查询elasticsearch集群状态的接口.你可以通过执行curl -XGET localhost:9200/_cat 1. 获取所有_cat系列的操 ...

  5. Linux文件比对,批量复制

    --背景 工作中突然有一天文件服务器空间满了,导致文件存不进去,立马换了另外一台服务器作为文件服务器,将服务器挂载上去,原来的服务器修复之后需要重新换回来,但是需要将临时使用的服务器内的文件迁移至原文 ...

  6. mysql存储过程简单例子

    1.之前经常在oracle数据库中使用存储过程,换到mysql后用的不多,但是有时候也用,大致记录一下,基本和oracle的一样. CREATE DEFINER = `root`@`%` PROCED ...

  7. mybatis中参数为list集合时使用 mybatis in查询

    mybatis中参数为list集合时使用 mybatis in查询 一.问题描述mybatis sql查询时,若遇到多个条件匹配一个字段,sql 如: select * from user where ...

  8. 英伟达 cuda 开发套件下载

    下载地址 https://developer.nvidia.com/cuda-toolkit 安装比较简单,就不多说了.

  9. Eclipse中run as run on server和run as java application

    一.run java application (作为Java应用程序运行)是运行 java main方法 run on server是启动一个web 应用服务器   二.两者的区别: Eclipse中 ...

  10. LCD 驱动 S3C2440A

    LCD Control 1 Register 以16BPP为例 LCD Control 2 Register LCD Control 3 Register LCD Control 4 Register ...