List lst=数据库中返回的数据 requestsetAttibute("lst",lst); <select> <logic:iterate id="e" name="lst"> <option value="{e}">e</option> </logic:iterate> </select>
我的采用的是javabena+jsp
一个javabean
public ArrayList selectCourseInfo()throws Exception {//下拉框显示课程信息
ArrayList list = new ArrayList();
try {
dbopen();
ResultSet rs = dbselect("select from CourseInfo");
while (rsnext()) {
listadd(new CourseInfo(rsgetInt(1), rsgetString(2),rsgetString(3)));
}
} catch (Exception e) {
eprintStackTrace();
} finally {
dbclose();
}
return list;
}
然后在jsp中调用
<tr><td>课 程:<select name="course">
<%try{
ArrayList list=mselectCourseInfo();
if(listisEmpty()){
outprintln("没有数据显示");
}
for(int i=0;i<listsize();i++){
CourseInfo c=(CourseInfo)listget(i);%>
<option><%=cgetName()%></option>
<%}}
catch(Exception e){}
%></select>
</td></tr>
这样就可以动态的显示了
有两种办法
A、把所有的商品分类和商品一次性查出来,载入到javastript数据,采用onchange实时更新。
B、把商品分类查出来,onchange时采用ajax方法后台入到页面。
既然一条语句你这样写,下面的变通下不就可以了。
[userinfo]员工信息表
ID-员工ID
NAME-员工名
dept-所在部门(部门名称)
<Script language="JavaScript">
<!--
var subcat = new Array();
<%
'初始化一个计数器,用于初始化JS中的数组顺序
i=0 '从0开始
'读取用户数据
Set rs=ServerCreateObject("ADODBRecordSet")
rsopen "Select From [userinfo] order by id asc",conn,1,1
do while Not rsEof
%>
//该部分动态生用户列表数据数组(JS使用)
//<%rs("id")%>字段防止重名人员使用ID识别
//此两个列表放在表单名为form中,如其他名称FORM1,请更改代码中的FORM为其他名称即可
subcat[<%=i%>] = new Array('<%=rs("dept")%>','<%=rs("id")%>','<%=rs("name")%>')
<%
'计数(循环生成可让JS使用的数组)
i=i+1
rsMoveNext
loop
rsclose
set rs=nothing
%>
function changeselect1(locationid)
{
documentformuserlength = 0;
documentformuseroptions[0] = new Option('员工列表,'');
for (i=0; i<subcatlength; i++)
{
if (subcat[i][0] == locationid)
{documentformuseroptions[documentformuserlength] = new Option(subcat[i][1], subcat[i][2]);}
}
}
//-->
</script>
<select name="s1" onChange="changeselect1(thisvalue)">
<option value="" selected>部门列表</option>
<%
'读部门数据,生成1级选择菜单[部门选择]
Set rs=ServerCreateObject("ADODBRecordSet")
rsopen "Select distinct(dept) From [userinfo] order by id asc",conn,1,1
do while Not rsEof
'使用chr(13)和""是为生成符合HTML书写标准数据,无他意义
ResponseWrite "<option value="""&rs("dept")&""">"&rs("dept")&"</option>"&chr(13)
rsMoveNext
loop
rsclose
set rs=nothing
%>
</select>
<!--默认放一个员工列表(没有选择部门时显示)-->
<select name="user" size=1>
<option value="">员工列表</option>
</select>
你的意思是先查询出来所有数据后,再显示到下拉菜单中去对吗?
如果是的话,按下面的思路做,相信你能做出来:
首先你访问这个界面前,要先去查询数据库中的数据,一般这些数据都装到一个list(集合,不一定用List)中去,然后再转到(如果是web项目,就是跳转了,这时把这个list装到request中,requestsetAt(“list”,lits);如果用的是桌面应用程序,就把这个list以参数的形式传到界面类上去)你的界面上,在界面上做一个下拦菜单,然后呢,就是一个循环输出list中包含的所有数据库中的数据,把每次循环取出来的信息放入下拉菜单的选项中去,这样,有多少数据,这个下拉菜单就有多少选项了,不知道是不是你想要的结果,如果不是,你可以再说详细点,方便大家为你解答,。
以上就是关于怎么从数据库中读取数据实现下拉菜单全部的内容,包括:怎么从数据库中读取数据实现下拉菜单、java中下拉菜单连接数据库、如何用下拉菜单查询数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)