jsp如何实现这种功能 用个查询天气的例子来说明一下,有两个列表框第一个列表框为省名如:上海市,北京市,江苏省……第二个列表框为该省下面的市当我选择江苏省时,第二个列表框立即显示南京市,苏州市,镇江市……这个在jsp页面中如何实现 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以 用map来作在map中 第一个下拉列表 中的元素为key第二个下拉列表中的元素为value 且这个value是一个set个人觉得 用EL表达式 把map体现在jsp中就可以了! 用ajax做就能实现你想要的功能 楼主问的是2级级联菜单的问题方法1:使用js把菜单内容写在页面里思路:在页面定义好各省的城市var menu1 = new Array(); menu1[0] = ["西城", "东城", "崇文" ,"宣武"] menu1[1] = ["南京市", "苏州市","镇江市"] html:<select name="province" onchange="getCitys(this.selectedIndex)"> <option value ="0">北京</option> <option value ="1">江苏</option></select> <select name="city"></select> 通过getCitys方法,先把下拉框city里的option去掉,然后把省对应的citys都逐个加入到下拉框city里document.myForm.city.options[i]=new Option(str1, str2);方法2:更灵活些不在页面定义js城市数组通过ajax从数据库取得citysvar xmlHttp; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e) { // Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("您的浏览器不支持AJAX!"); return false; } } } xmlHttp.onreadystatechange=function() { if(xmlHttp.readyState==4) { //此处代码需楼主自己完善下 var citys = xmlHttp.responseText; document.myForm.city.options[i]=new Option(str1, str2); …… } } xmlHttp.open("GET","getCitys.jsp",true); xmlHttp.send(province.xml); }3:不建议使用以前做过证券类的,对js有要求当时用的还是struts1,写了struts标签取级联菜单,意思跟ajax是一样的,稍显麻烦 1楼那方法就行了,就是判断下比如选1的时候得到list1{1,2,3}选2时候得到list2{4,5,6}就这么简单 还有一种方法和AJAX类似你选择了第一个下拉列表之后,用Javascript控制查询数据库,动态的生成Html代码发送到页面。这样也可以实现不过四楼的方法已经很好了。这个仅供参考。 用AJAX做个2级联动 如果你会用JQUERY的话相对容易些 通过选择第一个下拉触发JS事件 在事件中获得第一个下拉的VALUE并通过这个VALUE获得第二个下拉的集合 AJAX做个2级联动,网上有现成的代码,可以找看看 dwr 实现联动菜单比较方便。 级联菜单,用ajax很方便的.不过也可以用JS写死在页面上啊. 级联菜单的问题,搜一下很多,不过补充一下不是非要ajax,如果数据已经在页面上了,直接使用JavaScript操作dom就行了,ajax之不过是异步获取了数据,到页面还是要用JavaScript操作都没对象 我用javascript实现过,网上有现成的代码。 JSP如何对GET和POST分别取值? tomcat页面引入自定义类 请教:如何使用oracle的循环语法给数据库中的多个表增加字段 一个有关<jsp:include >的问题 JSP向MYSQL中添加数据发生错误 我写了一个转换isotogb2312的bean,但为何没用,帮看看 在JB中如何运用Tomcat的DataSource功能?? 怎样根据我从数据库中查询得出的结果来动态的更改select选项框 在线等待:有关WEBLOGIC610的问题? 数组的传递问题 一个关于子窗口与父窗口的问题 有用netbeans+jsf中,jstl和jsf标签混用问题
第二个下拉列表中的元素为value 且这个value是一个set个人觉得 用EL表达式 把map体现在jsp中就可以了!
方法1:使用js把菜单内容写在页面里
思路:
在页面定义好各省的城市
var menu1 = new Array();
menu1[0] = ["西城", "东城", "崇文" ,"宣武"]
menu1[1] = ["南京市", "苏州市","镇江市"] html:
<select name="province" onchange="getCitys(this.selectedIndex)">
<option value ="0">北京</option>
<option value ="1">江苏</option>
</select>
<select name="city"></select> 通过getCitys方法,先把下拉框city里的option去掉,然后把省对应的citys都逐个加入到下拉框city里
document.myForm.city.options[i]=new Option(str1, str2);方法2:更灵活些
不在页面定义js城市数组
通过ajax从数据库取得citys
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{ // Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{ try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("您的浏览器不支持AJAX!");
return false;
}
}
}
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
//此处代码需楼主自己完善下
var citys = xmlHttp.responseText;
document.myForm.city.options[i]=new Option(str1, str2);
……
}
}
xmlHttp.open("GET","getCitys.jsp",true);
xmlHttp.send(province.xml);
}
3:不建议使用
以前做过证券类的,对js有要求
当时用的还是struts1,写了struts标签取级联菜单,意思跟ajax是一样的,稍显麻烦
比如选1的时候得到list1{1,2,3}
选2时候得到list2{4,5,6}
就这么简单
你选择了第一个下拉列表之后,用Javascript控制查询数据库,动态的生成Html代码发送到页面。这样也可以实现不过四楼的方法已经很好了。这个仅供参考。
dwr 实现联动菜单比较方便。