三级联动省市ajax的代码

目录
  • 创建数据库
  • 首先创建 City 和 Province 类 给getter setter tostring 以及 构造方法 Province类
  • City类
  • 连接数据库
  • 创建 接口 ProvinceInfoDao
  • 实例化对象ProvinceInfoDaoImpl
  • 以及CityInfoDao接口
  • CityInfoDaoImpl实例化对象
  • FindProvinceServlet
  • FindCityPidServlet
  • 最后是jsp页面
  • 总结

我只写到了市剩下的区可以复制粘贴的很简单

所需要的jar包有

代码如下

创建数据库

CREATE database provinces CHARACTER  set utf8;
use provices; 

CREATE table  province (
pid INT PRIMARY KEY  auto_increment,
pname varchar(20)
);

INSERT into province VALUES (null,"河南省");
INSERT into province VALUES (null,"海南省");
INSERT into province VALUES (null,"台湾省");
INSERT into province VALUES (null,"山东省");
INSERT into province VALUES (null,"河北省");
CREATE table  city (
cid INT PRIMARY KEY  auto_increment,
cname varchar(20),
pid int
);
INSERT into city VALUES(null,"漯河市",1);
INSERT into city VALUES(null,"菏泽曹县",4);
INSERT into city VALUES(null,"高雄市",3);
INSERT into city VALUES(null,"保定",5);
INSERT into city VALUES(null,"三亚市",2);

首先创建 City 和 Province 类 给getter setter tostring 以及 构造方法 Province类

package cn.hp.model;
public class Province {
    private  int pid;
    private  String pname;
    public int getPid() {
        return pid;
    }
    public void setPid(int pid) {
        this.pid = pid;
    }
    public String getPname() {
        return pname;
    }
    public void setPname(String pname) {
        this.pname = pname;
    }
    @Override
    public String toString() {
        return "Province{" +
                "pid=" + pid +
                ", pname='" + pname + '\'' +
                '}';
    }
    public Province(int pid, String pname) {
        this.pid = pid;
        this.pname = pname;
    }
    public Province() {
    }
}

City类

package cn.hp.model;
public class City {
    private  int cid;
    private String cname;
    private  int pid;
    public City() {
    }
    public int getCid() {
        return cid;
    }
    @Override
    public String toString() {
        return "City{" +
                "cid=" + cid +
                ", cname='" + cname + '\'' +
                ", pid=" + pid +
                '}';
    }
    public void setCid(int cid) {
        this.cid = cid;
    }
    public String getCname() {
        return cname;
    }
    public City(String cname, int pid) {
        this.cname = cname;
        this.pid = pid;
    }
    public void setCname(String cname) {
        this.cname = cname;
    }
    public int getPid() {
        return pid;
    }
    public void setPid(int pid) {
        this.pid = pid;
    }
    public City(int cid, String cname, int pid) {
        this.cid = cid;
        this.cname = cname;
        this.pid = pid;
    }
}

连接数据库

package cn.hp.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnDemo {
	private static String Driver ="com.mysql.jdbc.Driver";
	private static String Url = "jdbc:mysql://localhost:3306/provinces?characterEncoding=utf8";
	private static String user ="root";
	private static String pwd ="123456";
	public static Connection conn;
	public static Connection getConn() {
		try {
			Class.forName(Driver);
			conn = DriverManager.getConnection(Url, user, pwd);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return conn;
	}

	public static void getClose() {
		try {
			if (conn != null) {
				conn.close();
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	// �������ݿ�����
	public static void main(String[] args) {
		System.out.println(getConn());
		if (getConn()!=null) {
			System.out.println("���ӳɹ�");
		}
	}
}

创建 接口 ProvinceInfoDao

package cn.hp.dao;
import cn.hp.model.Province;
import java.util.List;
public interface ProvinceInfoDao {
    public  List<Province> findAll();
}

实例化对象ProvinceInfoDaoImpl

package cn.hp.dao;
import cn.hp.model.Province;
import cn.hp.util.ConnDemo;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class ProvinceInfoDaoImpl implements ProvinceInfoDao {
    @Override
    public List<Province> findAll() {
     Connection conn=   ConnDemo.getConn();
     List<Province> list= new ArrayList<Province>();
     String sql="select * from provice";
        try {
            PreparedStatement ps= conn.prepareStatement(sql);
          ResultSet rs=  ps.executeQuery();
          while (rs.next()){
              Province p= new Province();
              p.setPid(rs.getInt(1));
              p.setPname(rs.getString(2));
              list.add(p);
          }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return list;
    }
}

以及CityInfoDao接口

package cn.hp.dao;
import cn.hp.model.City;
import java.util.List;
public interface CityInfoDao {
    public  List<City>findAllCity(int pid);
}

CityInfoDaoImpl实例化对象

package cn.hp.dao;
import cn.hp.model.City;
import cn.hp.model.Province;
import cn.hp.util.ConnDemo;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class CityInfoDaoImpl implements  CityInfoDao {
    @Override
    public List<City> findAllCity(int pid) {
        Connection conn=  ConnDemo.getConn();
        List<City> list= new ArrayList<City>();
        String sql="select * from city where pid =?";
        try {
            PreparedStatement ps= conn.prepareStatement(sql);
            ps.setInt(1,pid);
            ResultSet rs=  ps.executeQuery();
            while (rs.next()){
                City c= new City();
               c.setCid(rs.getInt(1));
               c.setCname(rs.getString(2));
               c.setPid(rs.getInt(3));
                list.add(c);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return list;
    }
}

写servlet FindProvinceServlet 以及FindCityPidServlet

FindProvinceServlet

package cn.hp.servlet;
import cn.hp.dao.ProvinceInfoDao;
import cn.hp.dao.ProvinceInfoDaoImpl;
import cn.hp.model.Province;
import com.alibaba.fastjson.JSONObject;
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;
@WebServlet("/findProvince")
public class FindProvinceServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        ProvinceInfoDao pid=new ProvinceInfoDaoImpl();
        List<Province> plist =pid.findAll();
        response.getWriter().write(JSONObject.toJSONString(plist));
    }
}

FindCityPidServlet

package cn.hp.servlet;
import cn.hp.dao.CityInfoDao;
import cn.hp.dao.CityInfoDaoImpl;
import cn.hp.model.City;
import com.alibaba.fastjson.JSONObject;
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;
@WebServlet("/findCityByPid")
public class FindCityByPidServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        String id = request.getParameter("id");
        CityInfoDao cid= new CityInfoDaoImpl();
        List<City> clist  = cid.findAllCity(Integer.parseInt(id));
        response.getWriter().write(JSONObject.toJSONString(clist));

    }
}

最后是jsp页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <script src="js/jquery-3.6.0.js"></script>
    <title>$Title$</title>
      <script>
          $(function () {
             $.ajax({
                 type:"get",
                 url:"findProvince",
                 dataType:"json",
                 success:function (data) {
                  var obj=  $("#province");
                  for (var i=0;i<data.length;i++){
                      // var  ob= "<option value='+data[i].pid+"'>"+data[i].pname+"</option>"
                      var  ob= "<option value='"+data[i].pid+"'>"+data[i].pname+"</option>"
                      obj.append(ob)
                     }
                 }
             })
          })
      </script>
  </head>
  <body>
   <select name="province" id="province">
     <option value="0">请选择</option>
   </select>省
   <select name="city" id="city">
     <option value="0">请选择</option>
   </select>市
   <select name="street" id="street">
     <option value="0">请选择</option>
   </select>区
  </body>
<script>
    $("#province").change(function () {
       $("#city option").remove();
       $.ajax({
           type:"get",
           url:"findCityByPid?id="+$("#province").val(),
           dataType: "json",
           success:function (data) {
               var obj=  $("#city");
               for (var i=0;i<data.length;i++){
                   var  ob= "<option value='"+data[i].cid+"'>"+data[i].cname+"</option>"
                   obj.append(ob)
               }
           }
       })
    });
</script>
</html>

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • ajax实现select三级联动效果

    本文利用ajax技术从数据库中获取数据,动态实现select三级联动,效果图如下: 前端js代码如下: <script type="text/javascript" src="jquery/jquery-1.9.1.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $.ajax({ type:"

  • jQuery ajax实现省市县三级联动

    下面我们用Jquery,ajax,做一个省,市,县的三级联动: 下面是我做三级联动下拉的步骤以及逻辑 第一步:先做一个省市区表格 第二步:建个PHP页面显示用我是在<body>里放<div>用来接收要显示的省市区表格信息,里面嵌入jquery-1.11.2.min.js和自己封装的三联动省市区的方法 第三步:写封装方法用JS 第四步:做个纯php处理页面,这个页面处理传过来的任何代号 首先我们要建立数据库: 这就是包含省,市,县的数据库. 下面我们就写主页面:sanji.php:

  • Ajax实现省市区三级联动

    目录 需要的jar包: 数据库代码: 省: 市: 区: 页面展示代码: DBHelper类: 总结 需要的jar包: 数据库代码: create database school character set utf8; use school; CREATE table provice ( pid INT PRIMARY KEY auto_increment, pname varchar(20) ); INSERT into provice VALUES (null,"河南省"); INS

  • 原生javascript AJAX 三级联动的实现代码

    js 三级联动的实现代码如下所示: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js原生ajax</title> </head> <body> <select name="sel1"> <option value=""

  • 使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例

    使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能 要求:写一个省市区(或者年月日)的三级联动,实现地区或时间的下拉选择. 实现技术:php ajax 实现:省级下拉变化时市下拉区下拉跟着变化,市级下拉变化时区下拉跟着变化. 使用chinastates表查询 Ajax加载数据 1.这是chinastates表 2.做一个简单php:Ajax_eg.php <!DOCTYPE html> <html> <head> <meta charset=&q

  • 三级联动省市ajax的代码

    目录 创建数据库 首先创建 City 和 Province 类 给getter setter tostring 以及 构造方法 Province类 City类 连接数据库 创建 接口 ProvinceInfoDao 实例化对象ProvinceInfoDaoImpl 以及CityInfoDao接口 CityInfoDaoImpl实例化对象 FindProvinceServlet FindCityPidServlet 最后是jsp页面 总结 我只写到了市剩下的区可以复制粘贴的很简单 所需要的jar包

  • django中上传图片分页三级联动效果的实现代码

    Django1.8.2中文文档:Django1.8.2中文文档 上传图片配置上传文件保存目录 1)新建上传文件保存目录. 2)配置上传文件保存目录. 后台管理页面上传图片 1)设计模型类. 2)迁移生成表格. 3) 注册模型类. 后台管理页面上传图片实例 1.在static下面创建media文件夹(再在media文件夹里面新建booktest文件夹). 2.设置静态文件保存目录 # 设置上传文件的保存目录 MEDIA_ROOT = os.path.join(BASE_DIR, 'static/m

  • 原生js三级联动的简单实现代码

    实例如下: <!DOCTYPE html> <head> <title> 三级联动 </title> <meta charset="utf-8"> </head> <body> <script> window.onload = function() { console.log(city) var oDiv = document.getElementById("div");

  • 使用mint-ui实现省市区三级联动效果的示例代码

    引用插件:饿了么的mint-ui组件中的picker功能,具体API可参照官网说明:http://mint-ui.github.io/docs/#/zh-cn2/picker 背景:项目需要做一个省份-城市-地区的选择级联效果,我从gayhub上找了一下,决定使用mint-ui的组件,因为各个功能都很全而且设计跟我们的项目风格类似. 具体实现: 通过阅读官网的实例,大概就能知道这个组件的用法: 在vue中写入组件:<mt-picker :slots="slots" @change

  • iOS三级联动选择器的实现代码示例

    无聊ing...封装个省市区三级联动选择器的小demo吧. 上家公司的三级地区选择器的数据是一次性通过网络请求就能获取到的,但新东家这边并不是,而是先选择了省获取省的Id再去获取市,再通过得到市的Id获取区域,show code之前,先看下需要考虑的几个点: 1)怎么设置默认值,关键代码 [self.pickerView selectRow:xxx inComponent:xxx animated:YES]; 2)怎么让三级之间联动 ,关键代码 复制代码 代码如下: [self pickerVi

  • ajax实现省市三级联动效果

    本文实例为大家分享了ajax实现三级联动效果的具体代码,供大家参考,具体内容如下 1.html代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Title</title> <style type="text/css"> .wrap { background-color: beige; width: 400px

  • ajax三级联动实现代码

    本文实例为大家分享了ajax三级联动展示的具体代码,供大家参考,具体内容如下 1. test.php <script src="../jquery-1.11.2.min.js"></script> <script src="sanji.js"></script> <title>无标题文档</title> </head> <body> <h1>三级联动</

  • jquery+ajax实现省市区三级联动效果简单示例

    本文实例讲述了jquery+ajax实现省市区三级联动效果.分享给大家供大家参考,具体如下: 一直想学习下Ajax,没时间,汗,这借口太牵强了.下了点教程在手机里,翻了好几遍了,没实战一次. 最近的项目里需要Ajax实现效果,就下了个jquery,然后找了个实例,学习了一下,幡然醒悟,NND,jquery果然强大的一塌糊涂,实现Ajax简直就是不费吹灰之力.下面把学习过程跟大家分享下,虽然还没有搞清楚jquery ajax的底层相关.不管了.我们不需要去发明轮子.呵呵. 先上代码,是一个省市区三

  • 如何利用Ajax实现地区三级联动详解

    前言: 利用Ajax来实现一个地区的三级联动,用Java代码来读json文件,先eclipse做一个简单的,最基础的.(json我用的jackson来解析,也可用fastjson-阿里巴巴的等还有很多)提供代码,思路之类的,注释也没有自己去想去琢磨出来的思路好 first:首先先要熟悉json文件,并要想好利用什么类型去解析,这是最难的,最好找一个没人的地方戴上耳机(对于初学)我是用maven来做的用到的jar坐标 : <dependency> <groupId>redis.cli

  • Ajax实现三级联动效果

    本文实例为大家分享了Ajax实现三级联动效果的具体代码,供大家参考,具体内容如下 一.导入数据表和gson.jar 该表包括了中国所有的省.市.县.区,它们之间通过parentid关联. 二.后端代码 由于每一级的数据都是根据上一级的id查询而来,逻辑十分相似,故我们只需要一个接口就可以完成三级甚至更多级的联动,在这个案例中我们的核心查询就是select * from area where parentid=#{pid} entity package com.codeXie.entity; im

随机推荐