日期:2014-05-18  浏览次数:20731 次

求一个功能的代码
我有这样一段代码,实现的大致功能是选择第一个select的值,第二个Select的内容是所有pid为第一个所选id的id,第三个select的内容是所有
pid为第二个所选id的id,其后依次类推,代码如下:
<form   name= "form1 ">
1层
<select   name= "select1 "onchange= "form1.submit(); ">
<option> 内容 </option>
<%ResultSet   r1=sqlbean.executeQuery( "Select   id,name   from   item   where   pid= '0 ' ");
while(r1.next()){%>
<option   value= " <%r1=getString( "id ")%> "selected= "selected "> <%=r1.getString( "name ")%> </option>
<%}
r1.close();%>
</select>
2层
<select   name= "select2 "onchange= "form1.sumbit(); ">
<option> 内容 </option>
<%String   a2=request.getParameter( "select ");
ResultSet   r2=sqlbean.executeQuery( "Select   id,name   from   item   where   pid= ' "+a2+ " ' ");
while(r2.next()){%>
<option   value= " <%r2=getString( "id ")%> "selected= "selected "> <%=r2.getString( "name ")%> </option>
<%}
r2.close();%>
</select>
...//其后与2层相似省略!sqlbean.executeQuery是我写的一个数据库基本操作bean。
-----------------------------
但是每次选择后就提交,值虽然传到了,但是显示上还是未选前的值,如何每次提交后都显示提交的值?

------解决方案--------------------
学习一下。。
------解决方案--------------------
楼主的意思了解了
那你change的时候所提交的2能够得到
在重写下拉列表的时候多加一个条件
就是只有添加的项为2的时候为selected
而不是每个都是selected
------解决方案--------------------
学习
------解决方案--------------------
把这一行 <%if(request.getParameter( "select ")!=null)%> 去掉
你的 <form type=post> 这里面有post的吧

或者这样试试
<select name= "select "onchange= "form.submit(); ">
<%String r= " ";
if(request.getParameter( "select ")!=null)
{
r=request.getParameter( "select ");
}
ResultSet rs=sqlbean.executeQuery( "select adminuser from admin ");
while(rs.next()){%>
<option value= " <%=rs.getString( "adminuser ")%> "
<%=r.equals(rs.getString( "adminuser "))? "selected ": " "%> >
<%=rs.getString( "adminuser ")%> </option>
<%}
rs.close();%>
</select>