关于下拉菜单的问题
我用JSP做的一个手机库存系统,其中在入库时,其中有俩个下拉菜单,一个是手机类型(如摩托罗拉,三星)一个是手机型号(如L6,V360,x208),俩个下拉菜单的内容都从数据库中查询,如手机类型是rs.getstring(leixing),手机型号是用的rs.getstring(xinghao),现在遇到个问题就是如何在选择第一个下拉菜单时,如选择摩托罗拉则第二个自动只显示摩托罗拉的手机型号(如L6,v360),如选择三星则第二个下拉菜单只显示三星的手机型号,哪位高手能给指点指点该如何实现,或者是有更好的办法吗?
[解决办法]
<html> <head>
<LINK href=Site.css rel=stylesheet>
<title> - 添加文章 </title>
</head>
<body topmargin= "0 ">
<jsp:include page= "../../top.jsp " />
<table border= "1 " width= "100% " align=center cellpadding= "0 " cellspacing= "0 " style= "border-collapse: collapse " bordercolor= " ">
<form name=form1 method= "get " action= "addarticle.goto.add.do ">
<tr align= "center ">
<td colspan= "1 " class= "TDtop " height=25>
<div align= "center " > ┊ <B> 添加文章--类别选择 </B> ┊ </div>
</td>
</tr>
<input type= "hidden " name= "typeid " value= " <bonc:param name= 'typeid '/> ">
<tr bgcolor= "#FFFFFF ">
<td align= "center ">
<p> </p>
<p> 所属大类:
<select name= "bigclassid " onChange= "changelocation(this.value,this.form) " size= "1 ">
<option selected value= " "> 请选择大类 </option>
<bonc:options name= "bigclassOption "/>
</select>
所属小类:
<select name= "smallclassid " size= "1 ">
<option selected value= " "> 请选择小类 </option>
</select>
</p>
<p> </p>
</td>
</tr>
<tr>
<td align= "center " height=25 class= "TDtop ">
<input type= "button " value= " 返 回 " name= "B1 " onclick=javascript:history.go(-1) style= "font-size: 9pt; color: #000000; background-color: #EAEAF4; solid #EAEAF4 " onMouseOver = "this.style.backgroundColor= '#ffffff ' " onMouseOut = "this.style.backgroundColor= '#EAEAF4 ' ">
<input type= "submit " value= " 继 续 " name= "B1 " style= "font-size: 9pt; color: #000000; background-color: #EAEAF4; solid #EAEAF4 " onMouseOver = "this.style.backgroundColor= '#ffffff ' " onMouseOut = "this.style.backgroundColor= '#EAEAF4 ' ">
</td>
</tr>
</form>
</table>
<jsp:include page= "../../bottom.jsp "/>
</body>
</html>
<script language = "JavaScript ">
var onecount2;
onecount2=0;
subcat2 = new Array();
<%
int m=0;
Datastore smallclass=(Datastore)request.getAttribute( "dssmall ");
for(int i=1;i <=smallclass.rowCount();i++){
String smallclassid=General.convertNullToHTMLEmpty(smallclass.getItemString(i, "str_smallclassid "));
String bigcalssid=General.convertNullToHTMLEmpty(smallclass.getItemString(i, "str_bigclassid "));
String smallclassname=General.convertNullToHTMLEmpty(smallclass.getItemString(i, "smallclassname "));
%>
subcat2[ <%=m%> ] = new Array( " <%=smallclassname%> ", " <%=bigcalssid%> ", " <%=smallclassid%> ");//产生数组
<%
m++;
}
%>
onecount2= <%=m%> ;
function changelocation(id1,form1)
{
form1.smallclassid.length = 0;
var id1=id1;
var j;
form1.smallclassid.options[0] = new Option( '请选择小类 ', ' ');
for (j=0;j < onecount2; j++)
{
if (subcat2[j][1] == id1)
{
form1.smallclassid.options[form1.smallclassid.length] = new Option(subcat2[j][0], subcat2[j][2]);
}
}
}
</script>
你没看见里面的 <%%> ????
[解决办法]
ajax那套东西到能做 不过还要先学
就用javascript 每次一拉动 都触发一个事件
然后提交数据库 返回填充二级菜单啊 就这么简单
自己很轻松就能写出来
[解决办法]
http://community.csdn.net/Expert/topic/5512/5512164.xml?temp=.3683435
你的问题和这个问题差不多!都要做一个action!
[解决办法]
学习一下,关于联动
[解决办法]
实现联动一般有两种思路,一种是一次性把级联的数据库读出来,放到数组里然后进行分配,还有一种是先读父级下拉数据,然后根据父级数据读取子级数据库分配到列表中!
[解决办法]
学习下,不知道怎么做,呵呵
好像这个用Ajax比较方便些吧,
瞅瞅.
[解决办法]
可以参考一下我的方法
http://blog.csdn.net/jiqimiao/archive/2007/04/26/1585665.aspx
看一下吧,不明白的可以留言给我
[解决办法]
你在选择第一个手机类型的时候提交下页面,然后手机型号里面的内容和类型关联起来
[解决办法]
手机类型里 onchange= "javascript:form.submit(); "
然后手机型号下拉菜单的内容根据form.手机类型.value来得到
[解决办法]
上面的都是不刷新的
你实在不行就提交刷新下页面
[解决办法]
onchange = "checkinfo(this); ";
<script type= "text/javascript ">
var xmlHttp;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject( "Microsoft.XMLHTTP ");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
function checkinfo(obj){
var phonetype = obj.value;
if(phpnetype== "请选择 "){
alert( "请选择手机类型 ");
}else{
createXMLHttpRequest();
var url = "process.jsp?type= ' "+phonetype+ " ' ";
xmlHttp.open( "GET ", url, true);
xmlHttp.onreadystatechange = checkInfo;
xmlHttp.send(null);
}
}
function checkInfo(){
if(xmlHttp.readyState == 4){
if(xmlHttp.status == 200) {
var response = xmlHttp.responseText;
eval(response);
}else{
alert( "发生请求故障! ");
}
}
}
</script>
[解决办法]
用AJAX很好实现的
一个ONCHANGE事件+JS+AJAX调用数据库数据返回数据
不就OK了```````AJAX麻烦的话用DWR