load 页面的时候:
以相应的A,来创建drop list B
A1->list B1
A2->list B2
...将所有的list B分别放在多个Div中,每个给一个唯一的ID,隐藏所有的Div .
当选择了A时,激活对应的Div.
以相应的A,来创建drop list B
A1->list B1
A2->list B2
...将所有的list B分别放在多个Div中,每个给一个唯一的ID,隐藏所有的Div .
当选择了A时,激活对应的Div.
解决方案 »
- java语言中所有各种类型的char所能转换成int的最大值是?
- 正则能实现这样的功能吗?
- Log4j问题.求大侠们帮助.谢谢!
- Java图片像素操作
- struts2 标签使用问题
- 谁能给个struts出错处理及信息显示的实例,就是html:error 和message
- Struts2+spring3.1+jpa事务不提交的问题
- weblogic部署的时候,获取不到项目的绝对路径
- tomcat4.1 下配置数据源问题(水晶报表问题)
- 请教有关访问控制的问题
- 在jbuilder中怎样使用tomcat5.0的数据库连接池。
- 向各位dx求一个软件,在线等,解决马上给分,急!急!急!急!急!急!急!急!急!
如果是在client端处理,那么恭喜你!这需要大量的javascript代码才能实现,而且有些高级的javascript方法在IE6以下的版本是不支持的
你要做一个servlet,通过传递进取一个url参数而返回城市列表的xml数据流。
在选择第一个列表的时候调用一个javascript的方法,把选中的省份的编号传给这个servlet,从而获得城市的xml数据流,然后这个javascript方法用一个简单的xsl文件把这个xml数据流格式化成一个下拉列表,把生成的下拉列表的html代码放入页面上第二个列表的位置。这样,你每次选择第一个列表都会调用这个javascript方法从servlet获得数据、格式化、放入界面上。
就可以实现你的要求了。
javascript如:
var rootPath,DivTag,depth,xmlPath,xmlPathWithPara,xslPath,topDIVName;
var xml = new ActiveXObject("Microsoft.XMLDOM");
var xsl = new ActiveXObject("Microsoft.XMLDOM");
xmlPath = "/servlet/cityServlet";//这是你的servlet路径
xslPath = "/cityXsl.xsl";//一个简单的xsl
DivTag = "city";//这是你在页面上要显示城市列表的位置的id,比如是一个td标记的id
function loadXTree(pId) {//pId是你的省份的id
topDIVName=DivTag;
xsl.async = false;
xsl.load(xslPath);
xml.async = false;
xml.load(xmlPath+"?id="+pId);//往servlet传递省份的id
var content=document.all(DivTag);
content.innerHTML=xml.transformNode(xsl);
}
然后再写一个javascript的方法,在省份列表的onChange事件中调用,用来获得省份列表中选中的省份的value(id),传给这个loadXTree。至于xsl的写法你可以找点资料参考一下,根据你生成的xml文件的格式来写对应的xsl文件
借楼主宝地一用
大家帮我看一下这个问题呀,好急呀!!!!!!多谢!!!!!
form中的代码:
/**
* 返回省
*/
public String getProvinceCollectionSelect(){
if(provinceCollectionSelect == null){
return "all";
}else{
return provinceCollectionSelect;
}
}
public void setProvinceCollectionSelect(String provinceCollectionSelect){
this.provinceCollectionSelect = provinceCollectionSelect;
} /**
* 返回市
*/
public String getCityCollectionSelect(){
if(provinceCollectionSelect == null){
return "all";
}else{
return cityCollectionSelect;
}
}
public void setCityCollectionSelect(String cityCollectionSelect){
this.cityCollectionSelect = cityCollectionSelect;
}
/**
* 返回省下拉菜单
*/
public Collection getProvinceCollection(){
if(provinceCollection == null){
provinceCollection = PullMenuUtils.getProvinceList();
}
return provinceCollection;
}
public void setProvinceCollection(Collection provinceCollection){
this.provinceCollection = provinceCollection;
}
/**
*根据省份返回这个省份的市下拉菜单
*/
public Collection getCityCollection(){
if(cityCollection == null){
//根据省份从数据库得到市的集合
cityCollection =
PullMenuUtils.getCityList(getProvinceCollectionSelect());
}
return cityCollection;
}
public void setCityCollection(Collection cityCollection){
this.cityCollection = cityCollection;
}jsp里的代码:每次选择省份的时候重新提交一次页面
<tr>
<td height="25">地区:</td>
<td>省
<html:select property="provinceCollectionSelect" onchange="changeprovince()">
<html:optionsCollection property="provinceCollection" />
</html:select>(可选)
</td>
<td>市
<html:select property="cityCollectionSelect">
<html:optionsCollection property="cityCollection" />
</html:select>(可选)
</td>
</tr>
触发的事件函数:
<script language="javascript">
function changeprovince(){
newRegionCountForm.action="newQueryRegionCount?parentPrivilege=20";
newRegionCountForm.submit();
}</script>