JavaScript实现省市区三级联动

来源:脚本之家  责任编辑:小易  

那你要用Ajax分别远程调用了~这样做的话肯定会有延时~思路可以给你,但是代码就算了~太费劲了~而且要和后台交互 思路就是写一个函数,这个函数可以接受一个参数,这个参数就是你每次点选的那个值,然后通过AJAX把这个参数传给后台,通过数据库查

本文实例为大家分享了JavaScript实现省市区三级联动的具体代码,供大家参考,具体内容如下

建议你用js实现,如果直接连接数据库话,对数据库的访问就会增加,如果并发量比较大的话,容易让数据库崩溃。可以在页面加载时把省市县的数据下载到客户端,

首先是js

河北省 弄成这样 只要获取 就获取的是 编号

$(document).ready(function(){ getErpMarketByParentCode(0,'province',province); getErpMarketByParentCode(province,'city',city); getErpMarketByParentCode(city,'area',area); getErpMarketByParentCode(area,'market',market); $('#city').append($('<option>').val('').html('-请选择-')).val(''); $('#area').append($('<option>').val('').html('-请选择-')).val(''); if($('#market')){ $('#market').append($('<option>').val('').html('-请选择-')).val(''); } $('#province').change(function(){ if($(this).val() == ''){ // 请选择 $('#city').empty(); $('#area').empty(); $('#city').append($('<option>').val('').html('-请选择-')).val(''); $('#area').append($('<option>').val('').html('-请选择-')).val(''); if($('#market')){ $('#market').empty(); $('#market').append($('<option>').val('').html('-请选择-')).val(''); } return; } getErpMarketByParentCode($(this).val(),'city'); $('#area').empty(); $('#area').append($('<option>').val('').html('-请选择-')).val(''); }); $('#city').change(function(){ getErpMarketByParentCode($(this).val(),'area'); if($('#market')){ $('#market').empty(); $('#market').append($('<option>').val('').html('-请选择-')).val(''); } }); $('#area').change(function(){ getErpMarketByParentCode($(this).val(),'market'); }); }); function getErpMarketByParentCode(parentCode, id, value){ $.ajax({ url:'/getErpMarketByParentCode', type:'post', data:{ code:parentCode }, dataType : 'json', error:function(){ alert('error'); }, success:function(data){ var select = $('#' + id); if(select){ select.empty(); select.append($('<option>').val('').html('-请选择-')); $.each(data.erpMarketList,function(i, erpMarket){ select.append($('<option>').val(erpMarket.code).html(erpMarket.name)); }); select.val(value); } } }); }

select 不是有value属性和text属性嘛,value就是你这里的19,text就是显示属性,就是东城区。

然后是后台方法

给你一些思路: 1、省市县的数据写到数据库中。每条数据会有一个父ID(上级ID)。 2、在页面上省变动后,查询市的数据以省的ID作为条件,县也一样,以市 的ID为条件。 第二种方法, 由于全国的这些基本上是固定的,一般变动比较少,这可以把这个

@RequestMapping(value = "/getErpMarketByParentCode") public ModelAndView getErpMarketByParentCode(HttpServletRequest request, HttpServletResponse response) throws Exception { String code = request.getParameter("code"); List<ErpMarket> erpMarketList = erpMarketService.getErpMarketListByParentCode(code); JSONObject jsonObject = new JSONObject(); jsonObject.put("erpMarketList",erpMarketList); response.getWriter().write(jsonObject.toString()); return null; }

其实土狗很聪明,而且因为是本地犬种,身体也好,不太容易得病。和FCI成人的纯种犬比,也没有什么卫生不卫生之分,不能因为他和我们一样是本地人不来自发达国家就歧视它啊!这些是我养狗狗的经验,和你分享一下,可能不太专业:狗狗小的时候要接种疫苗,疫苗有三联和六联的,我们家狗狗没有用过三联的,六联是预防犬温热、犬细小病毒病、犬钩端螺旋体病、传染性肝炎、传染性支气管炎和副流感的,还有单独的狂犬疫苗,大概在六周龄开始打(大了也没关系),到宠物医院医生会给你详细解释。以后每年一次。在城市养需要办狗证,社区好像每年都会有,我们这里要带:主人身份证复印件1张,狗狗1寸大头照3张,3寸全身照3张,房产证复印件或租赁

service方法,是从内从中获取省市区这张表

美团点评智能POS机就是用来开店的好助手。支持点餐、收银、外卖出单等综合服务功能的同时,还可以提供支付即会员的营销功能。可以说,餐饮企业老板有了智能POS机就是“一机在手,开店不愁”。智能POS开机快、收银速度快,支持当下刷卡、ApplePay、微信、支付宝等所有支付方式。不管管理者身在何处,都能实时看到收款情况,对账和财务管理也方便。智能POS机还能与商户财务端进行无缝对接,同时根据商家的特定需求,可在智能POS机上整合ERP(企业资源管理与业务流程管理的计算机系统、外卖接单打单系统)系统、外卖系统、电子发票管理等模块,并进行一对一专属开发定制。此外,美团点评的“商户通”营销推广平台,基于美

public List<ErpMarket> getErpMarketListByParentCode(String parentCode){ Hashtable erpMarketTable = LoadOnStartService.erpMarketTable;//从内存中获取这张表 List<ErpMarket> erpMarketList = new ArrayList<ErpMarket>(); Iterator its = erpMarketTable.keySet().iterator(); while(its.hasNext()){ String key = Util.getString(its.next()); ErpMarket erpMarket = (ErpMarket)erpMarketTable.get(key); if(parentCode.equals(erpMarket.getParentCode())){ erpMarketList.add(erpMarket); } } return erpMarketList; }

小编看到这个图片后,感觉很有意思,认为这是一个考察你观察力、想象力和推理力的小游戏。因为这张图片除了有小女孩和四个男人的合照,以及小女孩是被这四个人之一的人杀害外,其余的什么没有。因此,这个问题的答案应该是开放性的。既只能得到外貌和曾经合照过这两个结论,其他信息都只能是猜测。下面,我们来一起比较一下这四幅图片的不同。首先,我们会发现一个特点,就是除了第四张图片每一张图片中小姑娘都是一样的,如果用美术角度考虑,小姑娘只有一张图片是真的,其余三张都是通过PS技术处理的,而这一张图片的主人,有很大的可能就是杀害小姑娘的凶手。如果你很细心,你就会发现,不仅小姑娘在每张图片都是一样的,而且搭在小姑娘左肩

省市区的实体类

要说黑科技,现在的产品可多了,各种产品都要打上黑科技的标签,然后拿出去国外各种丢脸,被网友各种嘲讽。那么我现在就来介绍几款极具性价比的黑科技产品,准备好你的钱吧:1.宝洁洗衣球日本最大保洁公司研发了一款高科技产品——洗衣凝珠!这个洗衣凝珠怎么用呢?就是你在洗衣机衣服的时候把它扔进去就好了。官方演示:然而可能有人就说了,这和洗衣粉洗衣液没有差距啊,其实这个洗衣凝珠作用就是一个增强的作用,他能去除顽固污渍,而最黑科技的地方而是在于它本身。这个凝珠采用的是特殊材质做成,保证在15公斤的重量下都不会爆裂,也就是说这个东西很利于携带,且不会泄露。但是怎么用就是最黑科技的地方,这个东西子外力作用下不一定有

package com.erp.entity; /** * ErpMarket entity. * * @author MyEclipse Persistence Tools */ public class ErpMarket implements java.io.Serializable { // Fields private String code; private String shortCode; private String name; private String level; private String parentCode; // Constructors /** default constructor */ public ErpMarket() { } /** full constructor */ public ErpMarket(String shortCode, String name, String level, String parentCode) { this.shortCode = shortCode; this.name = name; this.level = level; this.parentCode = parentCode; } // Property accessors public String getCode() { return this.code; } public void setCode(String code) { this.code = code; } public String getShortCode() { return this.shortCode; } public void setShortCode(String shortCode) { this.shortCode = shortCode; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public String getLevel() { return this.level; } public void setLevel(String level) { this.level = level; } public String getParentCode() { return this.parentCode; } public void setParentCode(String parentCode) { this.parentCode = parentCode; } }

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

如何用js实现省市区之间的*联动

  页面中获取值并判断的js如下:

  <script type="text/javascript">

//这个函数是必须的,因为在area.js里每次更改地址时会调用此函数

function promptinfo()

{

var address = document.getElementById('address');

var s1 = document.getElementById('s1');

var s2 = document.getElementById('s2');

var town1 = document.getElementById('town1');

怎么在html中使用JavaScript调用省市区的*联动(数据在json文件中)

写一个ajax,根据回调的data来操控3级联动~ 或者你去jq插件库都可以下载到你想要的插件。

如何实现省市区*联动的效果

1、在做这个小项目前的准备工作:

1.1、分析:

由于省、市、县城(区)这些数据是存储到了MySQL数据库中的,我们要通过后台servlet获取数据库中的数据,然后再通过转发或者重定向的方式将数据呈现到前台页面中。

1.2、需要导入的jar包有:

mysql驱动包:mysql-connector-Java-5.1.7-bin.jar

c3p0数据库连接池:c3p0-0.9.2.1.jar、mysql-connector-java-5.1.7-bin.jar(c3p0依赖包)

前台c标签(需要通过遍历的方式呈现——c:forEach):jstl-1.0.2.jar、standard-1.0.1.jar(jstl依赖包)

将集合或者数组转换成json数据格式(Jackson包):jackson-annotations-2.2.1.jar、jackson-core-2.2.1.jar、jackson-databind-2.2.1.jar

前台页面需要用到jQuery,故还需要导入jquery-1.7.2.js库文件

1.3、该小项目用到的技术:

jdbc的知识、servlet的知识、jquery的知识、Ajax的知识(局部刷新)、标签的知识、EL表达式的知识、JSP的知识

2、开发过程:

2.1、准备数据源

创建一个数据库,命名为thereaction并创建三个表——province(省)、city(市)、county(县/区)

2.2后台开发

创建三个Javabean分别是Province、City、County。(由于太过简单,这里就不粘代码了)

创建Java类和c3p0连接池实现与数据库的连接:DAO.java(实现获取数据库数据的功能)、jdbctools.java(实现获取数据库连接、释放连接的功能)、c3p0-config.xml

jdbctools.java代码如下:

[java] view plain copy

package com.xiaojie.dao;

import java.io.IOException;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import javax.sql.DataSource;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class Jdbctools {

private static DataSource ds=null;

//数据库连接池应只被初始化一次

static{

ds=new ComboPooledDataSource("helloc3p0");

}

//获取数据库连接

public static Connection getConnection() throws ClassNotFoundException, SQLException, IOException{

return ds.getConnection();

}

public static void shifanglianjie(Connection ct, PreparedStatement ps,ResultSet rs) {

if(rs!=null){

try {

rs.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if(ps!=null){

try {

ps.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if(ct!=null){

try {

ct.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

DAO.java的代码如下

[java] view plain copy

package com.xiaojie.dao;

import java.io.IOException;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.List;

import com.xiaojie.beans.City;

import com.xiaojie.beans.County;

import com.xiaojie.beans.Province;

public class DAO {

public List<Province> getprovince(String sql ,Object...args) throws ClassNotFoundException, SQLException, IOException{

List<Province> provinces=new ArrayList<Province>();

//准备去查数据库

Connection ct=null;

ct=Jdbctools.getConnection();

System.out.println("获取到数据库的连接了");

PreparedStatement ps=null;

ResultSet rs=null;

ps=ct.prepareStatement(sql);

for(int i=0;i<args.length;i++){

ps.setObject(i+1, args[i]);

}

rs=ps.executeQuery();

while(rs.next()){

provinces.add(new Province(rs.getInt("province_id"),rs.getString("province_name")));

}

Jdbctools.shifanglianjie(ct, ps, rs);

return provinces;

}

public List<City> getcity(String sql ,Object...args) throws SQLException, ClassNotFoundException, IOException{

List<City> cities=new ArrayList<City>();

//准备去查数据库

Jdbctools jt=new Jdbctools();

Connection ct=null;

ct=jt.getConnection();

PreparedStatement ps=null;

ResultSet rs=null;

ps=ct.prepareStatement(sql);

for(int i=0;i<args.length;i++){

ps.setObject(i+1, args[i]);

}

rs=ps.executeQuery();

while(rs.next()){

cities.add(new City(rs.getInt("city_id"),rs.getString("city_name")));

}

jt.shifanglianjie(ct, ps, rs);

return cities;

}

public List<County> getcounty(String sql,Object...args ) throws SQLException, ClassNotFoundException, IOException{

List<County> counties=new ArrayList<County>();

//准备去查数据库

Jdbctools jt=new Jdbctools();

Connection ct=null;

ct=jt.getConnection();

PreparedStatement ps=null;

ResultSet rs=null;

ps=ct.prepareStatement(sql);

for(int i=0;i<args.length;i++){

ps.setObject(i+1, args[i]);

}

rs=ps.executeQuery();

while(rs.next()){

counties.add(new County(rs.getInt("county_id"),rs.getString("county_name")));

}

jt.shifanglianjie(ct, ps, rs);

return counties;

}

}

c3p0-config.xml的代码如下:

[html] view plain copy

<?xml version="1.0" encoding="UTF-8"?>

<c3p0-config>

<named-config name="helloc3p0">

<!-- 连接数据源的基本属性 -->

<property name="user">root</property>

<property name="password"></property>

<property name="driverClass">com.mysql.jdbc.Driver</property>

<property name="jdbcUrl">jdbc:mysql:///thereaction</property>

<!-- 若数据库中连接数不足时,一次向数据库服务器申请多少个连接 -->

<property name="acquireIncrement">5</property>

<!-- 初始化数据库连接池时连接的数量 -->

<property name="initialPoolSize">5</property>

<!-- 数据库连接池中的最小的数据库连接数 -->

<property name="minPoolSize">5</property>

<!-- 数据库连接池中的最大的数据库连接数 -->

<property name="maxPoolSize">10</property>

<!-- c3p0数据库连接可以维护的statement的个数 -->

<property name="maxStatements">20</property>

<!-- 每个连接同时可以使用的statement对象的个数 -->

<property name="maxStatementsPerConnection">5</property>

</named-config>

</c3p0-config>

创建servlet.java 文件

[java] view plain copy

package com.xiaojie.servlet;

import java.io.IOException;

import java.lang.reflect.Method;

import java.sql.SQLException;

import java.util.List;

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 com.fasterxml.jackson.databind.ObjectMapper;

import com.xiaojie.beans.City;

import com.xiaojie.beans.County;

import com.xiaojie.beans.Province;

import com.xiaojie.dao.DAO;

/**

* Servlet implementation class ThreeactiondServlet

*/

@WebServlet("/threeactiondServlet")

public class ThreeactiondServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String methodname=request.getParameter("method");

try {

Method method=getClass().getDeclaredMethod(methodname,HttpServletRequest.class,HttpServletResponse.class);

method.invoke(this, request,response);//调用各自的方法

} catch (Exception e) {

e.printStackTrace();

}

}

private DAO dao=new DAO();

protected void province(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, ClassNotFoundException, SQLException {

System.out.println("province的servlet进入了");

String sql="select province_id,province_name from province";

List<Province> provinces=dao.getprovince(sql);

request.setAttribute("provinces", provinces);

System.out.println(provinces);

//注意:这里不能用重定向的形式,因为我们好不容易在request请求域中存储了省的信息,目的是在前台页面中能够从请求域中获取到我们存在数据库中的值

//故这里只能用转发的方式

request.getRequestDispatcher("/index2.jsp").forward(request, response);

}

protected void city(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, ClassNotFoundException, SQLException {

System.out.println("city的servlet进入了");

String province_id=request.getParameter("province_id");

String sql="select city_id,city_name from city where province_id=?";

List<City> cities=dao.getcity(sql,Integer.parseInt(province_id));

ObjectMapper mapper=new ObjectMapper();

String result=mapper.writeValueAsString(cities);

System.out.println(result);

response.setContentType("text/javascript");

response.getWriter().print(result);

}

protected void county(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, ClassNotFoundException, SQLException {

System.out.println("county的servlet进入了");

String city_id=request.getParameter("city_id");

String sql="select county_id,county_name from county where city_id=?";

List<County> counties=dao.getcounty(sql,Integer.parseInt(city_id));

ObjectMapper mapper=new ObjectMapper();

String result=mapper.writeValueAsString(counties);

System.out.println(result);

response.setContentType("text/javascript");

response.getWriter().print(result);

}

}

怎样用js实现在数据库一张省市区表实现地区*联动

第一个select 读的全部的省份,然后根据第一个select 所选的id读出第二个SELECT 的值,第三个值则跟第二个的值取法一样,这是要连接数据库的!追问嗯,步骤想出来,就是代码实现的时候脑袋里什么都没有-。-,谢谢你追答你的代码写了吗,如果没有我给你一个我自己写的例子!

js写的省市县*联动怎么实现增删改查

省市县*联动菜单,JS全国省市县(区)联动代码,一般可以用于用户注册或分类信息二手交易网站,需要的朋友直接复制代码就可以用了,不过有朋友反馈说缺少某些城市,具体缺少哪个尚不知,请想用的朋友自己补全吧,省市、县级联菜单,分享给大家。

  • 本文相关:
  • php+mysql+ajax+js实现省市区三级联动
  • js制作简单的三级联动
  • javascript实现省市区三级联动下拉框菜单
  • 省市区三级联动下拉框菜单javascript版
  • jquery+json 通用三级联动下拉列表
  • js实现一个省市区三级联动选择框代码分享
  • js实现三级联动效果(简单易懂)
  • asp+js三级联动下拉菜单[调用数据库数据]
  • 原生js三级联动的简单实现代码
  • 从qq网站中提取的纯js省市区三级联动菜单
  • ie6/7/8/9中table/select的innerhtml不能赋值的解决方法
  • 使用原生js实现火锅点餐小程序(面向对象思想)
  • 深入理解js的事件绑定、事件流模型
  • div层的移动及性能优化
  • javascript实现带下拉子菜单的导航菜单效果
  • javascript作用域链实例详解
  • 深入理解javascript中的valueof与tostring
  • react native带索引的城市列表组件的实例代码
  • jquery中 dom节点操作方法大全
  • layer.js实现表格溢出内容省略号显示,悬停显示全部的方法
  • 如何用js实现省市区之间的三级联动
  • 怎么在html中使用JavaScript调用省市区的三级联动(...
  • 如何实现省市区三级联动的效果
  • 怎样用js实现在数据库一张省市区表实现地区三级联动
  • js写的省市县三级联动怎么实现增删改查
  • jquery或js实现省市县三级联动下拉列表,要能用的...
  • 一个页面可以用多个三级联动的省市县js代码?
  • 我用的是JS实现的省市县三级联动,但是存入数据库...
  • 我用的是JS实现的省市县三级联动,但是存入数据库...
  • 省市县三级联动菜单,JS全国省市县(区)联动,怎样...
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved