省市级联在web前端用户注册使用非常广泛。Ajax异步刷新省市级联。如图:选择不同的区,自动加载相应的街。

    <TD class=field>位  置:</TD>
<TD>区:
<SELECT class=text name="district_id" id="district_id">
<option selected value="请选择">请选择</option>
<c:forEach var="district" items="${requestScope.district}">
<OPTION value="${district.id }">${district.district_name }</OPTION>
</c:forEach>
</SELECT>
<span id="street_span">
街:
<SELECT class=text name=street_id id='street_id'>
<c:forEach var='street' items='${sessionScope.street}'>
<OPTION value='${street.street_name}'>${street.street_name}</OPTION></c:forEach>
</SELECT> </span>
</TD>
</TR>
  //核心代码(一定要导入jquery-1.8.3.js架包)
<script type="text/javascript">
//声明全局对象
var xmlhttp; //创建XMLHttpRequest对象
function createXMLHttpRequest(){ if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}else if(window.ActiveObject){
xmlhttp=new ActiveObject("Microsoft.XMLHTTP");
} }
function doAjax(url){
//初始化XMLHttpRequest
createXMLHttpRequest();
//判断对象是否初始化成功
if(xmlhttp!=null){//说明初始化正常
//请求服务器
xmlhttp.open("post",url,true);
//指定回调函数
xmlhttp.onreadystatechange=successresponse;
xmlhttp.send(null);
}
};
//指定回调函数
function successresponse(){
//判定响应状态
if(xmlhttp.readyState==4){
if(xmlhttp.status==200){
chuli(xmlhttp.responseText);
}
}
};
//初始化加载jQuery
window.onload=function(){
var count=$("#district_id option").length;
for(var i=0;i<count;i++){
if( $("#district_id ").get(0).options[i].selected == true && $("#district_id ").get(0).options[i].value=="请选择"){
$("#street_span").addClass("removeStreet_span");
};
};
};
/*ID选择器*/
$(document).ready(function() {
$("#district_id").change(function(){
var count=$("#district_id option").length;
for(var i=0;i<count;i++){
if( $("#district_id ").get(0).options[i].selected == true && $("#district_id ").get(0).options[i].value=="请选择"){
alert("请选择区");
$("#street_span").addClass("removeStreet_span");
}else if($("#district_id ").get(0).options[i].selected == true){
var district_value=$("#district_id").get(0).options[i].value;
$("#street_span").removeClass("removeStreet_span");
//请求异步刷新:以请求地址作为参数传递
doAjax("../SelectStreetServlet?id="+district_value);
};
};
});
}); function chuli(data){
var json = eval("("+data+")");
var txt = "";
for(var i = 0;i<json.jie.length;i++){
txt = txt+"<option value="+json.jie[i].name+">"+json.jie[i].name+"</option>";
}
$("#street_id").html(txt);
};
</script>

相应的com.msl.Servlet页面

package com.msl.Servlet;

import java.io.IOException;
import java.io.Writer;
import java.util.Iterator;
import java.util.Set; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.hibernate.Session; import com.msl.HibernateUtil.HibernateUtil;
import com.msl.entity.District;
import com.msl.entity.Street; public class SelectStreetServlet extends HttpServlet { /**
*
*/
private static final long serialVersionUID = -3989943574735454346L; /**
* Destruction of the servlet. <br>
*/
public void destroy() {
System.out.println("servlet");
} /**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
// response.setContentType("text/html");
// PrintWriter out = response.getWriter();
// out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
// out.println("<HTML>");
// out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
// out.println(" <BODY>");
// out.print(" This is ");
// out.print(this.getClass());
// out.println(", using the GET method");
// out.println(" </BODY>");
// out.println("</HTML>");
// out.flush();
// out.close();
} /**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// request.setCharacterEncoding("UTF-8");
// int id=Integer.parseInt(request.getParameter("id"));
//
// StreetBiz sz=new StreetBizImpl();
// List<Street> street=sz.selectStreet(id);
// int status=0;
// if(street.size()>0){
// status=1;
// }
// request.getSession().setAttribute("street", street);
// response.setContentType("text/html");
// response.setCharacterEncoding("UTF-8");
// PrintWriter out = response.getWriter();
// out.println(status);
// out.flush();
// out.close();
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
int id=Integer.parseInt(request.getParameter("id"));
Session session=HibernateUtil.getSession();
District dis=(District) session.get(District.class, id);
Set<Street> st=dis.getSet();
Iterator<Street> it=st.iterator();
StringBuffer s = new StringBuffer("{'jie':["); for(int j = 1;it.hasNext();j++){ Street s1 = it.next(); s.append("{'name':'"+s1.getStreet_name()+"'}"); if(j<st.size()){
s.append(",");
}
} s.append("]}"); Writer out = response.getWriter();
out.write(s.toString());
} /**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException {
System.out.println("servlet");
} }
您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态。 

如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦   

如果您对文章内容有任何疑问, 可以通过评论或发邮件的方式联系我: 2276292708@qq.com

如果需要转载,请注明出处,谢谢!!

  

Ajax异步刷新省市级联的更多相关文章

  1. 省市级联.net

    初学javascript,编译省市级联,使用json在一般处理程序中编译,利用ajax传递数据到web前台 <html xmlns="http://www.w3.org/1999/xh ...

  2. thinkPHP中省市级联下拉列表

    公共函数放置位置common文件夹下common.php文件(此段代码也可放置在要使用的控制器中) 封装的下拉列表函数代码: /** * 根据列表拼装成一个下拉列表 ADD BY CK * @para ...

  3. JavaScript 省市级联效果

    JavaScript 省市级联效果 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...

  4. Ajax异步刷新地址栏url改变(利用Html5 history.pushState实现)

    早些时候在博客园参阅了不少资料,然后决定入驻博客园分享自己的开发心得,最近准备转方向筹备着辞职交接工作,所以有点忙碌,搁置了一个月才匆匆写下这么一篇随笔,希望能给大家带来一点帮助吧,资料和学识有限,如 ...

  5. JavaScript实现省市级联效果实例

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  6. javascript中的省市级联效果

    学习javascript的时候都遇到过这样的需求,不仅是省市,还有其他的一些场景,看看关键的代码有哪些吧. <head runat="server"> <titl ...

  7. 全国省市级联数据sql语句 mysql版

    全国省市级联数据sql语句 mysql版 --省级 provincial create table provincial ( provincialID int, provincialName ), p ...

  8. js省市级联实现

    js省市级联实现. for [element] in [collection] 用于循环下标,常用于json for(index in arr){ console.info("下标:&quo ...

  9. 纯js实现省市级联效果

    我们都知道一般有注册的时候会让用户填入省市啊地区什么的,然后我就想使用纯js制作一个省市级联的效果,只是用于学习以及回顾温习用,首先看下效果图,界面很丑啊,不要嫌弃! 首先还是先看下我的项目目录吧 很 ...

随机推荐

  1. VC++ 提示无法打开包括文件“iostream.h”怎么办

    把 //#include "iostream.h" 改成 #include<iostream> using namespace std;                 ...

  2. react 组件之间的通信

    react推崇的是单向数据流,自上而下进行数据的传递,但是由下而上或者不在一条数据流上的组件之间的通信就会变的复杂.解决通信问题的方法很多,如果只是父子级关系,父级可以将一个回调函数当作属性传递给子级 ...

  3. HTML5: 本地缓存

    实现前端缓存,除了自己创建js保存(參考:http://blog.csdn.net/clementad/article/details/46807641).还能够利用html5的storage方法. ...

  4. linux句柄泄露问题查看

    背景: 我们在开发linux在线server的时候常常会遇会句柄泄露的问题.由于在linux系统设计里面遵循一切都是文件的原则.即磁盘文件.文件夹.网络套接字.磁盘.管道等,全部这些都是文件.在我们进 ...

  5. 另类创业招聘(REV#2)

    项目一 项目名:苏格拉底网 项目性质:人才測评为主.辅助以简易人才招聘功能的小众功能站点.项目使用了自主研发的人才測评算法以及人格分类模型(与MBTI非常相似). 项目相关网址:sugeladi.ne ...

  6. iOS开发——swift——swift与OC之间不得不知道的21点

    swift与OC之间不得不知道的21点   自6月的WWDC大会上由苹果的大神Chris Lattner向我们首次展示swift至今已经大半年时间了,虽然绝大部分软件公司代码里还都见不到一丁点swif ...

  7. Linux/Android——Input系统之frameworks层InputManagerService (六)【转】

    本文转载自:http://blog.csdn.net/u013491946/article/details/72638954 版权声明:免责声明: 本人在此发文(包括但不限于汉字.拼音.拉丁字母)均为 ...

  8. POJ2115 C-Loop

    传送门 这道题是求解不定方程的一道好练习题. 题目描述的很诡异……还说什么k进制,其实就是要求一个数A,每次加C,问到B要加多少次,所有的数对2k取模. 也就是说我们能列出如下方程:A+xC ≡ B ...

  9. 使用Oracle Sql Developer将SQL SERVER 2008数据库移植到Oracle 11g

    ORACLE官方提供的Sql Developer自带的Oracle Migration Workbench. 什么是Oracle SQL Developer?在官方页面上,是这样介绍它的: Oracl ...

  10. 1998 NOIP 拼数 string 和sort的新理解

    题目:https://www.luogu.org/problemnew/show/P1012 今天真是长了见识.这道题做了十几分钟,用模拟愣是调不出来.直到我看了题解——(当场去世)…… 题的意思是n ...