- 浏览: 305841 次
文章分类
最新评论
-
流年末年:
那四个参数还是没看懂.....能不能解释下showPassst ...
我写的密码强度验证方法(原创) -
kingcs2008:
// 验证pws.jsshowPassstrength(&qu ...
我写的密码强度验证方法(原创) -
h957355152:
请问博主这个怎么用呢?我直接放到jsp里面调用showPass ...
我写的密码强度验证方法(原创) -
qq_15138059:
我写的全国省市县三级联动菜单,拿出来和大家分享了(原创) -
valenon:
评论呢?从MAIL FROM命令开始貌似就出错了:500 Er ...
如何发送伪造的电子邮件
联动菜单代码
调用方式
ajax页面(数据源)
数据库表结构说明:
已经补充说明了
/* * 这是一个省市县级联的选择器采用ajax的方式来调用数据源 * ajax页面接收2个参数,level和parentid,这2个参数作为查询条件 * 其中level代表地区等级,1=省,2=市,3=县 * 另一个参数parentid代表要查询的地区的父级地区 * ajax取到的结果是字符串序列(例如:235,潮州市;236,东莞市;237,佛山市;238) * */ function AreaPicker(config) { /* * 私有属性 */ var provId = "#" + config.provId; var cityId = "#" + config.cityId; var townId = "#" + config.townId; var provDefStr = config.provDefStr? config.provDefStr : "请选择省份"; var cityDefStr = config.cityDefStr? config.cityDefStr : "请选择地区"; var townDefStr = config.townDefStr? config.townDefStr : "请选择县市"; var loadingStr = config.loadingStr? config.loadingStr : "正在加载..."; var asynSrc = config.url; var asynTimeout = config.timeout ?config.timeout : 5000; var asynMethod = config.method? config.method : "post"; var asynCache = config.cache? config.cache : false; /** * 私有方法,作用是初始化选择器的三个下拉框 * * @param pct * 参数(p=省,c=地,t=县) */ var initSelect = function(pct) { if (pct.indexOf("p") >= 0) { $(provId).html("<option value=\"\">" + provDefStr + "</option>"); $(provId).show(); } if (pct.indexOf("c") >= 0){ $(cityId).html("<option value=\"\">" + cityDefStr + "</option>"); $(cityId).show(); } if (pct.indexOf("t") >= 0){ $(townId).html("<option value=\"\">" + townDefStr + "</option>"); $(townId).show(); } } /** * 私有方法,作用是从数据源页面异步读取地区信息,根据objId,填充到相应的select中 * * @param objId * 用来装查询结果的下拉框对象的id * @param param * 传送给数据源页面的参数,格式为{param:1,level:1} * @returns 数据源页面的输出内容(例如:235,潮州市;236,东莞市;237,佛山市;238) */ var asynGetArea = function(objId, param,listeners) { //发送ajax之前 var bef = function() { $(objId).html("<option value=\"\">"+loadingStr+"</option>"); } //发送ajax之后并且服务器返回成功 var succ = function(code) { if (!code || $.trim(code).length==0) { $(objId).hide(); return; } var htmlCode = ""; var tempArray = code.split(";"); for ( var i = 0; i < tempArray.length; i++) { var tempArray1 = tempArray[i].split(","); var id = tempArray1.length >= 1 ? tempArray1[0] : null; var name = tempArray1.length >= 2 ? tempArray1[1] : null; htmlCode += "<option value=\"" + id + "\">" + name + "</option>\n"; } $(objId).html(htmlCode); } //success方法的包裹方法,用于实现事件监听 var successWarpper = function(data) { var befSuccessListener = listeners?listeners.befSuccessListener:null; if(befSuccessListener && (typeof befSuccessListener=="function")) befSuccessListener(); succ(data); var aftSuccessListener = listeners?listeners.aftSuccessListener:null; if(aftSuccessListener && (typeof aftSuccessListener=="function")) aftSuccessListener(); } //发送ajax之后并且状态错误 var err = function(e1, e2) { $(objId).html("<option value=\"\">加载失败: " + e1 + "," + e2 + "</option>"); } //ajax各种配置项 var asynConfig = { type : asynMethod, cache : asynCache, url : asynSrc, data : param, timeout : asynTimeout, beforeSend : bef, success : successWarpper, error : err }; //发出请求 $.ajax(asynConfig); } /** * 绑定下拉列表的change和focus事件,用来实现联动效果 */ var bindSelect = function() { //省份下拉框改变事件的处理函数 var provChange = function() { initSelect("ct"); var selectVal = $(provId).val(); var listeners = {aftSuccessListener:function(){ cityChange(); }}; if (selectVal) asynGetArea(cityId, { level : -1, parentid : selectVal },listeners); } //城市下拉框改变事件的处理函数 var cityChange = function() { initSelect("t"); var selectVal = $(cityId).val(); if (selectVal) asynGetArea(townId, { level : -1, parentid : selectVal }); } //绑定地级下拉框获得焦点事件 var cityFocus = function() { if ($(cityId + " option").length > 0 && $(cityId).val()) return; provChange(); } //绑定县市下拉框获得焦点事件 var townFocus = function() { if ($(townId + " option").length > 0 && $(townId).val()) return; cityChange(); } //绑定各个事件 $(provId).change(provChange); $(cityId).change(cityChange); $(cityId).focus(cityFocus); $(townId).focus(townFocus); } /** * 公有方法,用来初始化地区选择器,暴露给外部调用的入口 */ return { pick : function() { initSelect("pct"); asynGetArea(provId, { level : 1, parentid : -1 }); bindSelect(); } } }
调用方式
$(function() { var areaPicker = new AreaPicker({provId:"province",cityId:"city",townId:"town",url:"ajax_search_area.jsp"}); areaPicker.pick(); });
<select id="province"></select> <select id="city"></select> <select id="town"></select>
ajax页面(数据源)
<%@ page language="java" pageEncoding="UTF-8"%> <%@page import="java.sql.*"%> <%! private static Connection conn; private static String driver = "com.mysql.jdbc.Driver"; // 数据库驱动 private static String ulr = "jdbc:mysql://172.16.1.115:3306/test"; private static String username = "root"; // 数据库的用户名 private static String pwd = "root";// 数据库的密码 static { try { Class.forName(driver); conn = DriverManager.getConnection(ulr, username, pwd); conn.setAutoCommit(false); } catch (ClassNotFoundException e) { e.printStackTrace(); System.exit(-1); } catch (SQLException e) { e.printStackTrace(); System.exit(-1); } } %> <% //清除缓存 response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires", 0); out.clear(); //接收参数 int level = -1; String levelStr = request.getParameter("level"); if(levelStr!=null && levelStr.matches("^\\d+$")) level = Integer.parseInt(levelStr); String parentidStr = request.getParameter("parentid"); long parentid = -1; if(parentidStr!=null && parentidStr.matches("^\\d+$")) parentid = Long.parseLong(parentidStr); //查询数据 if(level<0 && parentid<0) return; if(level>=0 && parentid<0) { String sql = "select id,name from china_area where level=? order by id asc;"; PreparedStatement ps = conn.prepareStatement(sql); ps.setInt(1, level); ResultSet rs = ps.executeQuery(); StringBuffer sb = new StringBuffer(); while (rs.next()) { sb.append(";"+rs.getLong("id")+","+rs.getString("name")); } rs.close(); ps.close(); if(sb.length()>0) sb.delete(0, 1); out.print(sb.toString()); } if(level<0 && parentid>=0) { String sql = "select id,name from china_area where parentid=? order by id asc;"; PreparedStatement ps = conn.prepareStatement(sql); ps.setLong(1, parentid); ResultSet rs = ps.executeQuery(); StringBuffer sb = new StringBuffer(); while (rs.next()) { sb.append(";"+rs.getLong("id")+","+rs.getString("name")); } rs.close(); ps.close(); if(sb.length()>0) sb.delete(0, 1); out.print(sb.toString()); } if(level>=0 && parentid>=0) { String sql = "select id,name from china_area where level=? and parentid=? order by id asc;"; PreparedStatement ps = conn.prepareStatement(sql); ps.setInt(1, level); ps.setLong(2, parentid); ResultSet rs = ps.executeQuery(); StringBuffer sb = new StringBuffer(); while (rs.next()) { sb.append(";"+rs.getLong("id")+","+rs.getString("name")); } rs.close(); ps.close(); if(sb.length()>0) sb.delete(0, 1); out.print(sb.toString()); } %>
数据库表结构说明:
jsp查询页面接收parentid和level这2个参数,参数的值如果小于0,则表示没有传这个参数。 level表示行政单位的等级:省/直辖市=1,地级市/盟=2,县级市/旗=3 parentid表示父行政单位的id,父行政单位,也就是管它的那一级,省/直辖市的parentid均为0,其他根据行政规划而定。例如:昌平区的parentid就是北京市的id。 表结构为: china_area | |———id bigint 主键 |———name varchar 地区名 |———level int 级别 |———parentid bigint 父行政单位id
评论
5 楼
qq_15138059
2015-07-14
4 楼
从此醉
2014-01-18
好吧~~~~~~~~
3 楼
MRmicheal
2013-03-26
大神能把数据导出成一个.sql文件贴出来吗?现在急需这个数据sql文件
2 楼
kong0itey
2011-12-19
cpszy 写道
lz的数据表结构是什么样的?
已经补充说明了
1 楼
cpszy
2011-12-15
lz的数据表结构是什么样的?
发表评论
-
java正则表达式高级用法:转换驼峰标示
2012-06-26 16:47 5825String source = "LastLog ... -
你会做Web上的用户登录功能吗?(转)
2012-06-25 13:22 1386Web上的用户登录功能应 ... -
使用pager-taglib.jar实现的分页技术
2012-06-24 02:34 953//1.导入pager-taglib.jar包; / ... -
我写的验证码生成方案,可防止绝大多数机械识别。
2012-06-20 14:59 2414web.xml <!DOCTYPE web-app ... -
如何在myeclipse中使用maven?
2012-06-11 14:22 168491.下载maven,解压到D盘ma ... -
安装subclipse, MyEclipse8 SVN插件
2012-06-09 22:39 970安装subclipse, MyEclipse8 SVN插件 ... -
PDF生成器
2012-05-28 02:53 856我自己写的一个pdf生成器,能导出百度博客为PDF -
我的自动投票器
2012-04-17 13:58 1302自动投票器,支持windows的32位机器 下面的压缩包是编 ... -
list,set,map,数组间的相互转换(转载)
2012-03-16 16:29 28771.list转set Java代码 ... -
一个给pojo生成hashcode、equals、toString等方法的工具类
2012-03-06 09:52 4262一个给pojo生成hashcode、equals、toStri ... -
ehcache的用法
2012-02-13 22:13 0Spring ... -
使用ehcache来缓存页面
2012-02-13 22:08 825关于缓存的话题,在坛子里已经有很多讨论,简单的来说,如果一个应 ... -
java笔记:自己动手写javaEE框架(二)--业务层Service以及Service单元测试
2012-02-13 00:55 0前一篇博文里有三 ... -
struts+spring+hibernate的web应用<四> Web层代码编写(2)
2012-02-13 00:50 0接着就是写资源文件了。 在 com.game. ... -
struts+spring+hibernate的web应用<四> Web层代码编写(1)
2012-02-13 00:49 1050前面的文章: ... -
struts+spring+hibernate的web应用<三> Service层代码编写
2012-02-13 00:46 886前面的文章: ... -
struts+spring+hibernate的web应用<二> Dao层代码编写
2012-02-13 00:45 865前一篇文章 (struts+spring ... -
struts+spring+hibernate的web应用<一> 架构搭建
2012-02-13 00:44 780许久没有些文章了,现 ... -
ehcache缓存管理
2012-02-12 23:52 1014EHCache 是一个纯java的,在Hibernate2 ... -
检测一个字符串是否在jvm的常量池中(原创)
2012-01-11 09:07 2180检测一个字符串是否在jvm的常量池中 public ...
相关推荐
这个特定的项目,"纯JS写的省市县三级联动菜单",是一个无需使用AJAX,而是直接连接数据库来实现的功能模块。下面我们将深入探讨这个话题。 首先,我们要理解什么是三级联动菜单。它通常包含三个级别的选项,如在这...
全国省市区三级联动下拉菜单是一种常见的前端交互设计,它在网页或应用程序中用于选择地址时,用户可以依次从省、市、区三个级别的下拉菜单中选择,以实现快速定位。这种设计常见于电子商务、物流配送、信息录入等多...
全国 省市县 无刷新 三级联动菜单,可嵌套在任何一种网页语言中使用。
省市县三级联动菜单选择类 ,你可以把它用到你的COMBOBOX控件中
在EXCEL中可以实现全国省市县三级下拉菜单选择数据的实现。
"蓝木省市县三级联动菜单 v1.0"作为一个成熟的解决方案,很可能已经考虑到了上述所有方面,并提供了易于集成和自定义的API,让开发者能够快速地在自己的项目中实现这样的功能。使用这个组件,开发者可以避免从零开始...
好!最好!省市县3级联动菜单(完整数据,绝对好用),不刷新页面,轻松搞定!
javascript省市县三级联动菜单,很好的例子。
微信小程序-省市县三级联动,带有自定义地区码(源代码+截图)微信小程序-省市县三级联动,带有自定义地区码(源代码+截图)微信小程序-省市县三级联动,带有自定义地区码(源代码+截图)微信小程序-省市县三级联动,带有...
全国省市区三级联动数据 香港、澳门、台湾等都有详细的划分,感兴趣的小伙伴可以下载
在ASP(Active Server Pages)开发中,省市县三级联动是一种常见的功能,用于在网页上创建交互式的下拉选择框,用户可以选择国家、省份、城市,甚至到县这一级的行政区域。这种功能常见于需要用户填写详细地址的场景...
省市县关联菜单 三级联动 保证完整省市县三级联动菜单(三级关联菜单)
在这个“省市县三级联动”压缩包中,包含了一个数据库表和JavaScript实现的代码,旨在帮助开发者快速构建能够动态关联省级、市级和县级数据的功能。 数据库表的设计是关键,通常会有一个表格,包含以下字段: 1. `...
标题中的“省市县三级、省市二级联动菜单”指的是在网页设计中常见的下拉菜单功能,这种功能常用于地理信息选择,如用户填写地址时选择所在省份、城市和区县。这种联动效果意味着当用户在一级菜单(省份)中选择一个...
省市县三级联动和商品类型二级联动excel表
全国省市县三级联动数据库文件是一种常见的数据组织方式,主要用于存储国家、省份、城市以及区县等地理层级信息。这样的数据库设计对于实现地理位置相关的查询、分析和应用非常有用,例如在线地图服务、物流配送、...
在Excel中实现全国省市县三级联动是一项常见的数据管理和交互需求,尤其在数据分析、报表制作以及信息录入场景中。这项功能允许用户通过下拉菜单依次选择省份、城市和区县,确保数据的准确性和一致性。接下来,我们...
标题中的“基于mui写的H5移动端全国地区三级联动菜单”是指使用mui框架开发的一个适用于移动设备的HTML5页面,该页面包含一个具有三级结构的地区选择菜单。这个菜单设计能够帮助用户快速、方便地选择他们所在的省份...
jquery省市区三级联动下拉菜单_select三级联动下拉菜单 jquery省市区三级联动下拉菜单_select三级联动下拉菜单 jquery省市区三级联动下拉菜单_select三级联动下拉菜单 jquery省市区三级联动下拉菜单_select三级联动...
在IT行业中,构建一个全国省市区三级联动的下拉菜单是一项常见的需求,特别是在网页表单设计和地理信息系统中。这个任务通常涉及到前端开发,利用JavaScript库来实现动态交互的效果。本例中,我们使用了一个名为...