`
- 浏览:
98462 次
- 性别:
- 来自:
深圳
-
AJAX实现级联下拉框
需要的JAVA类
packagecom.ajaxlab.ajax;
importjava.util.ArrayList;
importjava.util.Collection;
importjava.util.Iterator;
importorg.jdom.Document;
importorg.jdom.Element;
importorg.jdom.input.SAXBuilder;
importcom.ajaxlab.ajax.ProductClass;
publicclassClassService...{
privateDocumentdom;
publicClassService()...{
try...{
SAXBuilderbuilder=newSAXBuilder();
this.dom=builder.build(ClassService.class.getResource("product.xml"));
}catch(Exceptione)...{
e.printStackTrace();
}
}
publicProductClass[]getAllClass1()...{
Collectionproducts=newArrayList();
Iteratoriterator=this.dom.getRootElement().getChildren().iterator();
do...{
Elementelement=(Element)iterator.next();
ProductClassproduct=newProductClass(element.getAttributeValue("id"),
element.getAttributeValue("className"));
products.add(product);
}while(iterator.hasNext());
return(ProductClass[])products.toArray(newProductClass[0]);
}
publicProductClass[]getAllClass2ById(Stringclass1Id)...{
Collectionproducts=newArrayList();
ElementclassElement=null;
Iteratoriterator=this.dom.getRootElement().getChildren().iterator();
do...{
Elementelement=(Element)iterator.next();
if(class1Id.equalsIgnoreCase(element.getAttributeValue("id")))...{
classElement=element;
break;
}
}while(iterator.hasNext());
if(classElement!=null)...{
Iteratoriter=classElement.getChildren().iterator();
do...{
Elementelement=(Element)iter.next();
ProductClassproduct=newProductClass(element.getAttributeValue("id"),
element.getAttributeValue("className"));
products.add(product);
}while(iter.hasNext());
return(ProductClass[])products.toArray(newProductClass[0]);
}
else...{
returnnull;
}
}
publicProductClass[]getAllClass3ById(Stringclass1Id,Stringclass2Id)...{
Collectionproducts=newArrayList();
Elementclass1Element=null;
Elementclass2Element=null;
Iteratoriterator=this.dom.getRootElement().getChildren().iterator();
do...{
Elementelement=(Element)iterator.next();
if(class1Id.equalsIgnoreCase(element.getAttributeValue("id")))...{
class1Element=element;
break;
}
}while(iterator.hasNext());
if(class1Element!=null)...{
Iteratoriter=class1Element.getChildren().iterator();
do...{
Elementelement=(Element)iter.next();
if(class2Id.equalsIgnoreCase(element.getAttributeValue("id")))...{
class2Element=element;
break;
}
}while(iter.hasNext());
if(class2Element!=null)...{
Iteratoriter2=class2Element.getChildren().iterator();
do...{
Elementelement=(Element)iter2.next();
ProductClassproduct=newProductClass(element.getAttributeValue("id"),element.getAttributeValue("className"));
products.add(product);
}while(iter2.hasNext());
}
return(ProductClass[])products.toArray(newProductClass[0]);
}
elsereturnnull;
}
}
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEclassSYSTEM"product.dtd">
<class>
<class1className="电脑配件"id="1">
<class2className="内存"id="1">
<class3id="1"className="kingmax"></class3>
<class3id="2"className="kingston"></class3>
<class3id="3"className="samsung"></class3>
<class3id="4"className="hydadi"></class3>
<class3id="5"className="ibm"></class3>
</class2>
<class2className="硬盘"id="2">
<class3id="6"className="hithait"></class3>
<class3id="7"className="IBM"></class3>
<class3id="8"className="samsung"></class3>
<class3id="9"className="westdata"></class3>
</class2>
</class1>
<class1className="食品配件"id="2">
<class2className="汉堡包"id="1">
<class3id="1"className="麦当劳"></class3>
<class3id="2"className="肯得基"></class3>
<class3id="3"className="罗杰丝"></class3>
</class2>
<class2className="饮料"id="2">
<class3id="4"className="cocacola"></class3>
<class3id="5"className="sprite"></class3>
<class3id="6"className="coffee"></class3>
<class3id="7"className="water"></class3>
</class2>
</class1>
</class>
<?xmlversion="1.0"encoding="GB2312"?>
<!ELEMENTclass(class1+)>
<!ELEMENTclass1(class2+)>
<!ATTLISTclass1classNameNMTOKEN#REQUIRED>
<!ATTLISTclass1idNMTOKEN#REQUIRED>
<!ELEMENTclass2(class3+)>
<!ATTLISTclass2classNameNMTOKEN#REQUIRED>
<!ATTLISTclass2idNMTOKEN#REQUIRED>
<!ELEMENTclass3EMPTY>
<!ATTLISTclass3classNameNMTOKEN#REQUIRED>
<!ATTLISTclass3idNMTOKEN#REQUIRED>
JSP:
(1)getClass.jsp充当业务层供ajax调用
<%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="com.ajaxlab.ajax.*"%>
<%
Stringclass1Id=request.getParameter("class1Id");
Stringclass2Id=request.getParameter("class2Id");
if("".equals(class1Id))class1Id=null;
if("".equals(class2Id))class2Id=null;
ClassServiceservice=newClassService();
if((class1Id!=null)&&(class2Id==null))...{
ProductClass[]classes=service.getAllClass2ById(class1Id);
if(classes!=null)...{
for(inti=0;i<classes.length;i++)...{
out.print(classes[i].getId()+","+classes[i].getClassName()+"|");
}
}
}
elseif((class1Id!=null)&&(class1Id!=null))...{
ProductClass[]classes=service.getAllClass3ById(class1Id,class2Id);
if(classes!=null)...{
for(inti=0;i<classes.length;i++)...{
out.print(classes[i].getId()+","+classes[i].getClassName()+"|");
}
}
}
%>
(2)divmenu.jsp
<%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="com.ajaxlab.ajax.*"%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
<html>
<head>
<scripttype="text/javascript"src="ajax_func.js"></script>
<scripttype="text/javascript">
functiondoChange()...{
varf=document.forms[0];
send_request("GET","getClass.jsp?class1Id="+f.select11.value+"&class2Id=",null,"TEXT",populateClass2);
}
functiondoChange2()...{
varf=document.forms[0];
send_request("GET","getClass.jsp?class1Id="+f.select11.value+"&class2Id="+f.select12.value,null,"TEXT",populateClass3);
}
functionpopulateClass2()...{
varf=document.forms[0];
if(http_request.readystate==4)...{
if(http_request.status==200)...{
varlist=http_request.responseText;
varclassList=list.split("|");
f.select12.options.length=1;
for(vari=0;i<classList.length-1;i++)...{
vartemp=Trim(classList[i]).split(",");
f.select12.add(newOption(temp[1],temp[0]));
}
}
}
}
functionpopulateClass3()...{
varf=document.forms[0];
if(http_request.readystate==4)...{
if(http_request.status==200)...{
varlist=http_request.responseText;
varclassList=list.split("|");
f.select13.options.length=1;
for(vari=0;i<classList.length-1;i++)...{
vartemp=Trim(classList[i]).split(",");
f.select13.add(newOption(temp[1],temp[0]));
}
}
}
}
functionLTrim(str)
...{
varwhitespace=newString(" ");
vars=newString(str);
if(whitespace.indexOf(s.charAt(0))!=-1)
...{
varj=0,i=s.length;
while(j<i&&whitespace.indexOf(s.charAt(j))!=-1)
...{
j++;
}
s=s.substring(j,i);
}
returns;
}
functionRTrim(str)
...{
varwhitespace=newString(" ");
vars=newString(str);
if(whitespace.indexOf(s.charAt(s.length-1))!=-1)
...{
vari=s.length-1;
while(i>=0&&whitespace.indexOf(s.charAt(i))!=-1)
...{
i--;
}
s=s.substring(0,i+1);
}
returns;
}
functionTrim(str)
...{
returnRTrim(LTrim(str));
}
</script>
<%
ClassServiceservice=newClassService();
ProductClass[]classes=service.getAllClass1();
%>
<metahttp-equiv="Content-Type"content="text/html;charset=ISO-8859-1">
<title>Inserttitlehere</title>
</head>
<body><center>
<formname="classForm"method="post"action="">
<selectname="select11"id="select11"onchange="doChange(this.value)">
<optionvalue="">请选择分类一</option>
<%
for(inti=0;i<classes.length;i++)...{
out.println("<optionvalue='"+classes[i].getId()+"'>"+classes[i].getClassName()+"</option>");
}
%>
</select>
<selectname="select12"id="select12"onchange="doChange2(this.value)">
<optionvalue="">请选择分类二</option>
</select>
<selectname="select13"id="select13">
<optionvalue="">请选择分类三</option>
</select>
</form>
</center></body>
</html>
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
AJAX级联下拉框源码 AJAX级联下拉框源码 AJAX级联下拉框源码
AJAX实现级联下拉框 需要的JAVA类,大家可以学习下
该实例为本人项目中使用的模块代码,经过专业测试人员测试,兼容所有主流浏览器,如有不解之处请联系本人
ajax实现可配置无刷新级联下拉框...
使用thinkphp框架做出的一个简单的ajax实现的无限添加级联下拉框的例子,ajax写的还可以,比价清晰
本篇文章主要是对AJAX级联下拉框的简单实现案例进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
这是一个利用了Ajax技术的一个Jquery实例,动态的生成级联的下拉列表框,在中关村zol中经常可以看到。如果遇到无法显示的情况,请自己阅读代码。
struts2+jsp+json+javascript实现的三级下拉菜单,没有service和dao层,数据是虚拟的。需要的欢迎下载。项目直接导入myeclipse就可以使用。访问路径localhost:8080/ajax_day02_hw/proviencecityarea.jsp
使用ajax和servlet实现两级下拉框的动态级联
AJAX-DWR下拉框级联AJAX-DWR下拉框级联 真正实用的`仅供参考
Ajax_实现下拉框的联动效果(详细注释) 有源码程序
级联下拉框级联下拉框级联下拉框级联下拉框级联下拉框级联下拉框级联下拉框级联下拉框
这是将《用Ajax实现多级联动下拉列表(无限级别,JSON传输数据,含全国地区数据库))》(原来是asp的)改写成ASP.NET,服务器端采用WebService。仍然使用JSON传数据。原文地址:...
使用ajax+struts2.0+jsp做的一个多下拉列表级联
spcc.js文件有一个地方需要修改一下 在第30行有一个citySele需要修改为seleValue 全文也就一个citySele
功能:选中第一个下拉框,局部刷新第二个下拉框的值,且每次选中第一个下拉框,第二个下拉框都会有对应的值提供选择。主要使用了MySQL,jdbc,servlet,jsp,而异步是使用了原生的JS和XMLHttpRequest异步对象实现的...
这是我在网上查找到的php实现三级级联下拉框的资料,共享个大家,大家一起进步,具体内容如下 index.php: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312">...
casObjId: ['SelProvince', 'SelCity', 'SelArea', 'SelXian'], // 级联下拉框id casDefVal: ['全国', 5, '益阳', 22], // 级联默认值(Id,Name都可以) }); }); html: <h2> 省级联动 ...