public class ProvLoad extends HttpServlet {
Ajax001 a1=new Ajax001();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List<String> prolist=a1.loadPro();
StringBuffer sb=new StringBuffer("[");
for(int i=0;i<prolist.size();i++){
sb.append(prolist.get(i));
if(i<prolist.size()-1){
sb.append(",");
}
}
sb.append("]");
response.setContentType("text/json; charset=utf-8");
response.getWriter().println(sb.toString());
}
}
ajax js文件
function createXmlHttpRequest(){
var xmlhttp = null;
try{
//Firefox, Opera 8.0+, Safari
xmlhttp=new XMLHttpRequest();
}catch(e){//IEIE7.0以下的浏览器以ActiveX组件的方式来创建XMLHttpRequest对象
var MSXML =
['MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0',
'MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0',
'MSXML2.XMLHTTP','Microsoft.XMLHTTP'];
for(var n = 0; n < MSXML.length; n ++){
try{
xmlhttp = new ActiveXObject(MSXML[n]);
break;
}catch(e){}}
}
return xmlhttp;
}
function loadcity(name){
var xhr=createXmlHttpRequest();
xhr.onreadystatechange=function(){
if(xhr.readyState==4 ||(xhr.status==200 || xhr.status==304)){
alert(xhr.responseText);
var ret=eval("("+xhr.responseText+")");
alert("ret lenght:"+ret.length);
var v="";
for(var i=0;i<ret.length;i++){
// alert("retX="+ret[i]);
v+="<option>"+ret[i]+"</option>";
}
//alert("v:"+v);
document.getElementById("city").innerHTML=v;
}
}
xhr.open("post","servlet/CityLoad",true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
alert(name);
xhr.send("name="+name);
}
function loadpro(){
var xhr=createXmlHttpRequest();
xhr.onreadystatechange=function(){
if(xhr.readyState==4 ||(xhr.status==200 || xhr.status==304)){
var ret=eval("("+xhr.responseText+")");
var s="<option>--</option>";
for(var i=0;i<ret.length;i++){
s+="<option>"+ret[i]+"</option>";
}
document.getElementById("pro").innerHTML=s;
}
}
xhr.open("get","servlet/ProvLoad",true);
xhr.send(null);
}
window.onload=loadpro;
页面内容
选择省份<select id="pro" onchange="loadcity(this.value)"></select>选择城市<select id="city"></select>
分享到:
相关推荐
在本项目中,Ajax被用来实现级联菜单的效果,即一个下拉菜单的选择会影响另一个下拉菜单的内容,这种交互方式常见于数据层级关系丰富的表单中。下面将详细介绍Ajax实现级联菜单的相关知识点。 1. **异步通信**: ...
级联菜单是Web应用程序中常见的一种交互设计方式,尤其在需要展示多层级数据结构时,如省份-城市选择器等场景下非常实用。通过级联菜单,用户可以方便地根据上一级的选择来筛选下一级的选项,从而达到快速定位的目的...
AJAX(Asynchronous JavaScript and XML)技术可以有效地实现级联菜单的动态加载和交互,无需刷新整个页面即可获取并显示数据。 **AJAX** 是一种在不重新加载整个网页的情况下,与服务器交换数据并更新部分网页的...
级联菜单级联菜单级联菜单级联菜单级联菜单级联菜单级联菜单级联菜单级联菜单级联菜单级联菜单级联菜单级联菜单级联菜单级联菜单级联菜单级联菜单级联菜单级联菜单级联菜单级联菜单级联菜单级联菜单级联菜单级联菜单...
动态级联菜单的实现可以通过多种方式,例如使用javascript、JQuery、Ajax等技术。其中,使用javascript和服务器端脚本结合的方式是最为常见的。 在上面的代码中,我们可以看到使用了VBScript作为服务器端脚本语言,...
在Web开发中,Ajax被广泛用于实现动态交互效果,比如级联菜单就是一种常见的应用场景。级联菜单允许用户逐级选择,通常在下拉框中展示,每次选择一个类别后,下一个级别的选项会根据上一级的选择动态加载。 级联...
通过这种方式,AJAX级联菜单提供了一种高效且动态的交互方式,使用户能够在不离开当前页面的情况下获取和操作更多信息。这个实例对于初学者来说,是一个了解AJAX基本工作原理和实践交互式Web应用的好起点。
在这个案例中,我们探讨如何运用AJAX、JSP和Servlet技术来实现一个三级级联菜单。 **AJAX (Asynchronous JavaScript and XML)** 是一种在不刷新整个网页的情况下,与服务器交换数据并更新部分网页的技术。它通过...
在这个“jQuery+ajax实现三级级联”的实例中,我们主要探讨如何利用这两种技术来创建一个能够逐级联动的下拉菜单系统,这在数据筛选和表单填写中十分常见,如地区选择、部门分类等场景。 首先,jQuery是一个轻量级...
Ajax(Asynchronous JavaScript and XML)技术的引入,使得级联菜单不再需要刷新整个页面就能动态地加载和更新数据,提高了用户体验。本文将深入探讨如何使用Ajax来实现级联菜单,并结合数据库获取数据。 首先,...
非常详细的一个级联菜单,很适合刚学ajax的朋友! 大家不懂的发送邮件给我,白天都在线! /** * js文件说明:实现 分公司-->支公司-->代理机构 三级下拉级联菜单 * 作者:朱亮</p> * 版本: 1.0</p> * 修改历史</p> ...
级联菜单级联菜单级联菜单级联菜单级联菜单级联菜单级联菜单级联菜单级联菜单级联菜单
级联菜单,也称为下拉菜单或嵌套菜单,是一种常见的用户界面元素,常用于组织大量相关选项,以便用户能够高效地浏览和选择。在计算机软件中,级联菜单的实现是一个关键的交互设计环节,它能提升用户体验,使得复杂的...
级联菜单(Cascading Menu)是用户界面设计中常见的一种元素,它允许用户通过展开主菜单项来访问更深层次的子菜单。这种交互方式在Windows操作系统、网页以及各种软件中都广泛应用,极大地提升了用户体验。 本文将...
在网页开发中,级联菜单(Cascading ...总的来说,js+jsp标签实现页面级联菜单是一种常用且高效的方法,尤其适用于大型、结构复杂的网站。通过对数据的处理和DOM操作,我们可以创建出符合用户需求的交互式菜单系统。