下拉列表框问题(200分)

  • 主题发起人 主题发起人 wjl_my
  • 开始时间 开始时间
W

wjl_my

Unregistered / Unconfirmed
GUEST, unregistred user!
在JSP页面中有两个下拉列表框,第一个表示部门信息,第二个表示该部门下的人员
当选择一个部门时,第二个下拉列表中显示该部门下的所有人员,第一个下拉列表中的信息是从数据库SQLSERVER中提出来的,现在的问题是如何根据第一个下拉列表框中变化的信息从数据库中提取出人员信息,人员表中有部门代码。
注意:代码是在JSP页面中,用<SELECT ONCHANGE>。。。</SELECT> 如果用JAVASCRIPT如何从数据库中提出数据并插入到第二个下拉列表框中
非常着急!!!!!!!!!!!!!!!1
 
onchange时提交表单,通过改变的参数就可以获取另一个列表筐的内容了,这是通常的做法。用JavaScript访问数据库的想法是不可行的。
 
可以考虑这样的结构:
<script language='javascript'>
...
function search_func(){
...
do
cument.xxForm.submit();
}
</script>
<%!
String getOptions(String item){
// 查询数据库,并返回一个 <option value='xxx'>xxxx</option> 列表的字符串
}
%>
<%
String item1 = request.getParameter("item1");
String item2 = request.getParameter("item2");
...
String itemlist1 = getOptions(item1);
String itemlist2 = getOptions(item2);
%>
<html>
...
<select name=item1 onChange="search_func();">
<%=itemlist1%>
</select>
<select name=item2 onChange="search_func();">
<%=itemlist2%>
</select>
 
请参考如下代码:(已运行成功)
<html>
<head>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html;
charset=gb2312">
</head>
<%
String TProduct_ID="10000000,10000001,10000002,10001000";//你可改成从数据库中取出数据,并进行累加成字符串
String TCategory_ID="1000,1001,1002,1000";";//你可改成从数据库中取出数据,并进行累加成字符串,同时将各个数据放入数组ACategory_ID
String[] ACategory_ID={"1000","1001","1002","1000"};//意义:即为各产品ID对应的分类ID,与TProduct_ID一一对应
int Counter=Acategory_ID.length;
%>
<body bgcolor="#FFFFFF" text="#000000">
<table width="778" border="0" cellspacing="0" cellpadding="0" height="100">
<FORM action="/OrderOnnet/AddOrderForm2.asp" method=POST id=FormAddTempInfo name=FormAddTempInfo LANGUAGE=javascript onsubmit="return FormAddTempInfo_onsubmit()">
<tr bgcolor="#FFFFFF">
<td><SELECT id=Category_ID name=Category_ID LANGUAGE=javascript onchange="return Category_ID_onchange()">
<OPTION value="0" selected>请选择产品分类</OPTION>
<%
for(int i=0;i<ACategory_ID.length;i++){
%>
<OPTION value="<%=ACategory_ID%>"><%=ACategory_ID%></OPTION>
<%
}
%>
</SELECT></td>
<td colspan=2><div id="Product_Display"><SELECT id=Product_ID name=Product_ID>
<OPTION value="0" selected>请选择详细产品</OPTION>
</SELECT></div></td>
<td align="center">
<input type="text" name="Order_Number" id="Order_Number" class="formcss" size="6" value="1">
</td>
</tr>
</FORM>
</table>


<SCRIPT LANGUAGE=javascript>
<!--
var Ary_Product_ID=FormAddTempInfo.Ary_Product_ID.value.split(',');
var Ary_Category_ID=FormAddTempInfo.Ary_Category_ID.value.split(',');
var Counter;
Counter=<%=Counter%>;
function Category_ID_onchange()
{
var Category_ID;
Category_ID =do
cument.FormAddTempInfo.Category_ID.value;
var OutPutText;
OutPutText="";
if (Category_ID==0)
{
OutPutText = '<SELECT id=Product_ID name=Product_ID><OPTION value="0" selected>请选择详细产品</OPTION></SELECT>';
Product_Display.innerHTML = OutPutText;
}
else
{
OutPutText = '<SELECT id=Product_ID name=Product_ID><OPTION value="0" selected>请选择详细产品</OPTION>';
for (var Counter1=0;Counter1<Counter;Counter1++)
{
if (Ary_Category_ID[Counter1]==Category_ID)
{
OutPutText = OutPutText + '<Option Value="' + Ary_Product_ID[Counter1] + '">' + Ary_Product_ID[Counter1] + '</Option>';
}
}
OutPutText = OutPutText + '</SELECT>';
Product_Display.innerHTML = OutPutText;
}
}
//-->
</SCRIPT>
</body>
</html>

你可参考http://www.csdn.net/Subject/237/index.shtm
 
一定要用javascript吗????????????
 
用iframe做比较好
(通过iframe提交,通过script修改窗体,第二个select的option,具体的去msdn的inet.chm上看看)
 
在javascript中可以使用javabean吗?
 
只是不能像调用Applet那么调用。
 
建议用框架!左框架为选择部门,当Select改变时,执行onchange事件,右框架网页刷新,通过传递过来的id参数,重新检索数据库
 
如果选择部门信息刷新人员列表,整个页面都回刷新,建议用javascript写入js文件中,调用页面时调用js文件
 
后退
顶部