- 浏览: 69449 次
文章分类
最新评论
省市县三级连动三种实现方式(javascript+jsp+servlet)、(jquery+jsp+servlet)、(extjs4.0+jsp+servle)
- 博客分类:
- we实用功能总结
方法一:(纯javascript+jsp+servlet)
<script type="text/javascript"> var request = getRequest(); function getRequest(){ var request; if(window.XMLHttpRequest){ request = new XMLHttpRequest(); //alert("xmlRequestHttp"); } else{ request = new ActiveXObject("Microsoft.XMLHTTP"); alert("xobject"); } return request; } function fun_init(){ // alert("init"); var url = '<%=request.getContextPath()%>/CityLinkServlet?level=1'; request.open('POST',url,true); request.onreadystatechange = show_province; request.send(null); } function change_province(_level,_code){ //alert(_level); var url = '<%=request.getContextPath()%>/CityLinkServlet?level='+_level+'&code='+_code; request.open('POST',url,true); request.onreadystatechange = show_city; request.send(null); } function change_city(_level,_code){ //alert(_level); var url = '<%=request.getContextPath()%>/CityLinkServlet?level='+_level+'&code='+_code; request.open('POST',url,true); request.onreadystatechange = show_county; request.send(null); } function show_province(){ if(request.readyState == 4){ if(request.status == 200){ var ret = request.responseText; var jsonObj = eval("("+ret+")"); //alert(jsonObj.data.length); //alert(document.getElementById("province")); var obj = document.getElementById("province"); for(var i=0;i<jsonObj.length;i++){ var item = new Option(jsonObj[i].name,jsonObj[i].code); obj.options.add(item); } } } } function show_city(){ if(request.readyState == 4){ if(request.status == 200){ var ret = request.responseText; var jsonObj = eval("("+ret+")"); var obj = document.getElementById("city"); obj.options.length = 1; for(var i=0;i<jsonObj.length;i++){ var item = new Option(jsonObj[i].name,jsonObj[i].code); obj.options.add(item); } } } } function show_county(){ //alert(request); if(request.readyState == 4){ if(request.status == 200){ var ret = request.responseText; var jsonObj = eval("("+ret+")"); var obj = document.getElementById("county"); obj.options.length = 1; for(var i=0;i<jsonObj.length;i++){ var item = new Option(jsonObj[i].name,jsonObj[i].code); obj.options.add(item); } //alert(jsonObj.data.length); } } } </script> </head> <body onload="fun_init()"> <div> <label>省</label> <select id="province" onchange="change_province(2,this.value)"> <option value="--">---请选择---</option> </select> <br/> <label>市</label> <select id="city" onchange = "change_city(3,this.value)"> <option value="--">---请选择---</option> </select> <br/> <label>县</label> <select id="county"> <option value="--">---请选择---</option> </select> <br/> </div> </body> </html>
方法二:(jquery+jsp+servlet)
<script type="text/javascript" src="<%=request.getContextPath()%>/jquery/jquery-1.7.1.js"></script> <script type="text/javascript"> $(function(){ var $province = $("#province"); var $city = $("#city"); var $county = $("#county"); //省份选择框变化处理函数 $province.change(function(){ //alert($province.val()); $city[0].options.length = 1; $county[0].options.length = 1; $.ajax({ type:'post', url:'<%=request.getContextPath()%>/CityLinkServlet', dataType:'json', data:{level:'2',code:$province.val()}, success:function(ret){ $.each(ret,function(){ $city.append("<option value="+this.code+">"+this.name+"</option>"); }); }, error:function(){alert("出现未知故障");} }); }); //市选择框变化处理函数 $city.change(function(){ // alert($city.val()); $county[0].options.length = 1; $.ajax({ type:'post', url:'<%=request.getContextPath()%>/CityLinkServlet', dataType:'json', data:{level:'3',code:$city.val()}, success:function(ret){ $.each(ret,function(){ $county.append("<option value="+this.code+">"+this.name+"</option>"); }); }, error:function(){alert("出现未知故障");} }); }); //页面加载完毕查询省份信息 $.ajax({ type:"post", url:"<%=request.getContextPath()%>/CityLinkServlet", data:{level:"1"}, dataType:"json", success:function(ret){ $.each(ret,function(){ $province.append("<option value="+this.code+">"+this.name+"</option>"); }); }, error:function(){alert("出现未知故障");} }); }); </script> </head> <body> <div> <label>省</label> <select id="province"> <option value="--">---请选择---</option> </select> <br/> <label>市</label> <select id="city"> <option value="--">---请选择---</option> </select> <br/> <label>县</label> <select id="county"> <option value="--">---请选择---</option> </select> <br/> </div> </body> </html>
方法三:(extjs4.0+jsp+servlet)
<%String conPath = request.getContextPath(); %> <link href="<%=conPath %>/extjs4.0/resources/css/ext-all.css" rel="stylesheet" type="text/css"> <script type="text/javascript" src="<%=conPath%>/extjs4.0/ext-all.js"></script> <script type="text/javascript" src="<%=conPath%>/extjs4.0/ext-lang-zh_CN.js"></script> <script type="text/javascript"> Ext.require("Ext.*"); Ext.onReady(function(){ //定义combox模型 Ext.define('State',{ extend:'Ext.data.Model', fields:[ {type:'string',name:'code'}, {type:'string',name:'name'} ] }); //加载省数据源 var province_store = Ext.create('Ext.data.Store',{ model:'State', proxy:{ type:'ajax', url:'<%=request.getContextPath()%>/CityLinkServlet?level=1' }, autoLoad:true, remoteSort:true }); //加载市数据源 var city_store = Ext.create('Ext.data.Store',{ model:'State', proxy:{ type:'ajax', url:'<%=request.getContextPath()%>/CityLinkServlet?level=2' }, autoLoad:false, remoteSort:true }); //加载县数据源 var county_store = Ext.create('Ext.data.Store',{ model:'State', proxy:{ type:'ajax', url:'<%=request.getContextPath()%>/CityLinkServlet?level=3' }, autoLoad:false, remoteSort:true }); //创建显示面板 Ext.create('Ext.panel.Panel',{ renderTo:document.body, width:300, height:220, title:'省市县三级联动', plain:true, margin:'30 10 50 80', bodyStyle:'padding:45px,15px,15px,15px', defaults:{ autoScroll:true, bodyPadding:10 }, items:[{ xtype:'combo', name:'province', id:'province', fieldLabel:'选择省', displayField:'name', valueField:'code', store:province_store, triggerAction:'all', queryMode:'local', //selectOnFocus:true, forceSelection:true, allowBlank:false, editable:false, emptyText:'--请选择省--', blankText:'--请选择省--', listeners:{ select:function(combo,record,index){ //alert(this.value); try{ var cityObj = Ext.getCmp('city'); cityObj.clearValue(); cityObj.store.load({params:{code:this.value}}); }catch(ex){ Ext.MessageBox.alert("错误","数据加载失败"); } } } }, { xtype:'combo', name:'city', id:'city', fieldLabel:'选择市', displayField:'name', valueField:'code', store:city_store, triggerAction:'all', queryMode:'local', //selectOnFocus:true, forceSelection:true, allowBlank:false, editable:false, emptyText:'--请选择市--', blankText:'--请选择市--', listeners:{ select:function(combo,record,index){ try{ var countyObj = Ext.getCmp('county'); countyObj.clearValue(); countyObj.store.load({params:{code:this.value}}); }catch(ex){ Ext.MessageBox.alert("错误","数据加载失败"); } } } }, { xtype:'combo', name:'county', id:'county', fieldLabel:'选择县', displayField:'name', valueField:'code', store:county_store, triggerAction:'all', queryMode:'local', //selectOnFocus:true, forceSelection:true, allowBlank:false, editable:false, emptyText:'--请选择县--', blankText:'--请选择县--' }] }); }); </script> </head> <body> </body> </html>
后台代码:
package com.servlet; import java.io.IOException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import com.util.DBUtil; /** * Servlet implementation class CityLink */ public class CityLinkServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("----in ---service"); String level = request.getParameter("level"); System.out.println("level=========="+level); String code = request.getParameter("code"); System.out.println("code========"+code); String sql = null; if ("1".equals(level)) { sql = "select dm,mc from city where dm like '%0000' order by dm"; deal(sql, response); } else if ("2".equals(level)) { sql = "select dm,mc from city where dm like '" + code.substring(0, 2) + "%00' and dm != '" + code + "' order by dm"; deal(sql, response); } else if ("3".equals(level)) { sql = "select dm,mc from city where dm like '" + code.substring(0, 4) + "%' and dm != '" + code + "' order by dm"; deal(sql, response); } else { } } public void deal(String sql, HttpServletResponse response) { Connection conn = DBUtil.getConnection(); ResultSet rs = null; PreparedStatement pst = null; try { pst = conn.prepareStatement(sql); rs = pst.executeQuery(); JSONArray jsonArray = new JSONArray(); JSONObject jsonObject = null; int i = 0; while (rs.next()) { jsonObject = new JSONObject(); jsonObject.put("code", rs.getString(1)).put("name", rs.getString(2)); jsonArray.put(i++, jsonObject); } JSONObject jsonObject2 = new JSONObject(); jsonObject2.put("data", jsonArray); response.setCharacterEncoding("utf-8"); response.getWriter().println(jsonArray); //response.getWriter().println(jsonObject2); System.out.println(jsonArray.toString()); } catch (SQLException e) { e.printStackTrace(); } catch (JSONException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { DBUtil.close(conn, pst, rs); } } }
DButil。java
package com.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ResourceBundle; public class DBUtil { private static String driverClassName ; private static String username; private static String password; private static String url; private static ResourceBundle bundle = ResourceBundle.getBundle("jdbc-mysql"); static{ driverClassName = bundle.getString("driverClassName").trim(); username = bundle.getString("username").trim(); password = bundle.getString("password").trim(); url = bundle.getString("url").trim(); try { Class.forName(driverClassName); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block System.out.println("找不到jdbc驱动包"); e.printStackTrace(); } } public static Connection getConnection(){ Connection conn = null; try { conn = DriverManager.getConnection(url, username, password); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return conn; } public static void close(Connection conn){ if(conn!=null){ try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); conn = null; } conn = null; } } public static void close(Statement stmt){ if(stmt!=null){ try { stmt.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); stmt = null; } stmt = null; } } public static void close(PreparedStatement pst){ if(pst!=null){ try { pst.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); pst = null; } pst = null; } } public static void close(ResultSet rs){ if(rs!=null){ try { rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); rs = null; } rs = null; } } public static void close(Connection conn,java.sql.PreparedStatement stmt){ close(stmt); close(conn); } public static void close(Connection conn,java.sql.PreparedStatement pst,ResultSet rs){ close(rs); close(pst); close(conn); } public static void close(Connection conn,Statement stmt){ close(stmt); close(conn); } public static void close(Connection conn,Statement stmt,ResultSet rs){ close(rs); close(stmt); close(conn); } }
- three_level_link.zip (1.8 MB)
- 下载次数: 106
相关推荐
【标题】:“(Java+JSP)可二次开发Extjs4.0通用后台管理系统源码完整大型项目.zip”指的是一个基于Java和JSP技术,并利用Extjs4.0框架开发的可扩展的后台管理系统源码。这个项目是针对中大型企业的需求设计的,提供...
基于SpringBoot+ExtJs4.0+Echarts实现的出租房屋管理系统源代码+数据库+项目文档 软件技术栈 前端:ExtJs4.0(JavaScript的一个框架),大数据展示用到Echarts 后端:SpringBoot, JPA 数据库:Mysql5.7 开发环境:...
ExtJS 4.0 是一个强大的JavaScript框架,用于构建富客户端Web应用程序。它引入了全新的MVC(Model-View-Controller)设计模式,这使得应用的结构更加清晰,代码更易于管理和维护。在这个主题中,我们将深入探讨如何...
本项目是关于使用Java服务器页面(JSP)和Servlet技术,结合ExtJS前端框架,实现数据的创建(Create)、读取(Read)、更新(Update)和删除(Delete),也就是常说的CRUD操作。这是一个典型的Web应用程序开发示例,...
Struts是一个基于MVC(Model-View-Controller)架构的开源框架,主要用于构建企业级的Java Web应用程序,而ExtJS4.0则是一个强大的JavaScript库,用于构建富客户端的用户界面。两者结合可以实现后端业务逻辑与前端...
EXTJS4.0和SSH(Struts2、Hibernate、Spring)是两种常见的Web开发技术,它们结合使用可以构建高效、功能丰富的企业级应用系统框架。EXTJS4.0是一款强大的JavaScript库,主要用于创建桌面级别的富客户端应用,而SSH...
第三讲:extjs4.0数据模型--Model(附件较大做了分包压缩大家只要下载2个包运行001就ok了) [03]EXTJS4.0数据模型-Model.001.zip (70.00M)[03]EXTJS4.0数据模型-Model.002.zip (57.37M) 第四讲:extjs4.0的数据代理-...
在"ssh+extjs4.0grid增删改查"这个主题中,我们将深入探讨如何将SSH框架与Ext JS 4.0 Grid集成,实现数据的CRUD(Create, Read, Update, Delete)功能。 1. **Struts2整合Hibernate**: - 配置Struts2-Hibernate...
ExtJS4.0中文版帮助文档,API帮助手册!
jQuery和Ext JS是两种广泛应用于前端开发的JavaScript框架,它们各自有着独特的特性和优势。本篇将详细探讨这两个框架在Jquery-Extjs4.0中的结合使用及其核心概念。 **jQuery框架** jQuery是一个轻量级、高性能的...
4. **ExtJS4.0**:这是一个JavaScript库,用于创建复杂的、桌面级的Web应用界面。它包含丰富的组件库,如表格、图表、窗口、表单等,支持拖放、布局管理、数据绑定等特性。ExtJS4.0引入了新的架构,提高了性能,并...
ExtJS是一种基于JavaScript的开源富客户端框架,专为构建企业级Web应用程序而设计。它提供了丰富的组件库,包括数据网格、表单、菜单、工具栏等,使得开发者能够创建具有桌面应用般用户体验的Web应用。ExtJS 4.0是该...
ExtJS 4.0是Sencha公司开发的一款强大的JavaScript前端框架,主要用于构建富客户端Web应用程序。这个官方版本的发布标志着ExtJS在功能、性能和可维护性方面的一个重要里程碑。以下将详细介绍ExtJS 4.0中的核心概念、...
ExtJS 4.0是一款强大的JavaScript库,主要用于构建富客户端应用。它提供了一套完整的组件模型,包括Grid、Form、Tree等,用于构建丰富的用户界面。在这个实例中,Grid组件被用来展示数据,它能动态加载数据,支持...
Extjs 4.0中文版API
在IT行业中,网页开发经常会遇到文件上传的需求,而"jSP+EXTJS实现upload UploadDialog"就是一种常见的解决方法。这个话题主要涵盖了两个关键部分:JavaServer Pages (JSP) 和 ExtJS,它们共同用于创建一个具有文件...
这是本人自己总结最好用的通用后台管extjs+MySQL+oracle+SQL server数据库源码:主要运用了一下的知识: 1、主要运用的后台框架是extjs, 2、jsp+hibernate+Struts2+spring+ajax+jQuery, 3、用到了Java面向对象的...
在这个“extjs+servlet+json简单应用”中,我们将探讨如何将这三个技术结合使用,构建一个简单的Web应用。 首先,我们需要理解ExtJS如何与后端进行通信。ExtJS中的Ajax类提供了与服务器交互的能力,它支持发送GET和...
EXTJS4.0是Sencha公司推出的一款强大的JavaScript前端框架,专用于构建富客户端Web应用程序。这个"EXTJS4.0开发手册源码"包含了EXTJS4.0框架的源代码,以及与其配套的开发指南,是深入理解EXTJS4.0内部机制和进行...