关于在JSP中实现二级下拉菜单关联(使用数据库,两个下拉菜单的均从数据库中搜索产生)

niexin 2003-07-21 02:14:15
我在cdsn中找到好些用ASP实现的,但我用的是Java,希望有人知道。
...全文
320 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
ychunshui 2003-08-08
  • 打赏
  • 举报
回复
Applet要浏览器支持java,会比较麻烦。
aarreess9960142 2003-08-04
  • 打赏
  • 举报
回复
可以用JAVA APLET 代替!
ychunshui 2003-08-03
  • 打赏
  • 举报
回复
有没有其他方法来代替javascript?
aarreess9960142 2003-08-02
  • 打赏
  • 举报
回复
我有原代码,给我分哦!你自己看着改吧。
<%@ page contentType="text/html; charset=GB2312" %>
<%@ page language="java" %>
<%@ page import="java.sql.*"%>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Select Customer</title>
<base target="middle">
</head>
<jsp:useBean id="database" scope="application" class="database.DataBase" />
<body bgcolor="#C0C0C0">
<form method="POST" action="query.jsp">
<fieldset style="width:750px;height:250px;" align=center>
<legend valign=top><b><font color="#0000FF">Select Customer</font></b></legend>
<center>
<%
String cust_code=null;
String cust_name=null;
String product_id=null;
String device_id=null;
%>

<table border="1" width="86%" height="172">
<tr>
<td width="33%" height="103" rowspan="3">
<b><font color="#0000FF">MON:</font></b>
<p><font color="#800000"><b>From</b></font>
<select size="1" name="D1" onChange="change();">
<script language="Javascript">
today=new Date();
for(var i=-2;i<3;i++)
{
document.write("<option >"+(today.getYear()+i)+"</option>");
}
document.write("</select>");

document.write("<select size='1' name='D2'>");
for(var i=1;i<13;i++)
{
document.write("<option>"+i+"</option>");
}
document.write("</select>");
</script>

</p>
<p><b><font color="#808000"> To   </font></b>
<script language="Javascript">
document.write("<select size='1' name='D3'>");
for(var i=-2;i<3;i++)
{
document.write("<option >"+(today.getYear()+i)+"</option>");
}
document.write("</select>");
document.write("<select size='1' name='D4'>");
for(var i=1;i<13;i++)
{
document.write("<option>"+i+"</option>");
}

document.write("</select>");
</script>
</p>
</td>
<td width="33%" height="35"><b><font color="#0000FF">Customer: </font></b>
</td>
<td width="34%" height="35"><select name=year></select><input type="radio" value="V1" name="R1"> <font color="#0000FF">ALL</font>
</td>
</tr>
<tr>
<td width="33%" height="34"><b><font color="#0000FF">Product mix:</font> </b>
</td>
<td width="34%" height="34"><select name=month></select>
<input type="radio" value="V2" name="R1"> <font color="#0000FF">ALL</font>
</td>
</tr>
<tr>
<td width="33%" height="34"><b><font color="#0000FF">Device:</font> </b>
</td>
<td width="34%" height="34"><select name=date ></select>
<input type="radio" value="V3" name="R1"> <font color="#0000FF">ALL</font>
</td>
</tr>
<tr>
<td width="101%" colspan="3" height="57"><b><font color="#0000FF">Area:</font></b><input type="checkbox" name="C1" value="ON"><b>Asia
</b><input type="checkbox" name="C2" value="ON"><b>Europe <input type="checkbox" name="C3" value="ON">China
<input type="checkbox" name="C4" value="ON">Japan <input type="checkbox" name="C5" value="ON">USA</b><input type="checkbox" name="C6" value="ON"><b>台湾</b>
<p><b>     </b><input type="checkbox" name="C7" value="ON"><b>渤海湾</b><b> </b><b><input type="checkbox" name="C8" value="ON">长江三角洲</b>
<input type="checkbox" name="C9" value="ON"><b>珠江三角洲</b> <input type="checkbox" name="C10" value="ON"><b>大陆其他</b>
</td>
</tr>
</table>

<script>
var arrSel=["year","month","date"];//arrSel定义了要修改的下拉框和xml数据的节点名称
</script>
<xml id=xmldata>
<xmldata>

<%
database.setSql("SELECT CUST_CODE,CUST_NAME FROM CUST_INFO");
ResultSet RS =database.getSelect();
try{
while(RS.next())
{
cust_code=RS.getString("CUST_CODE");
cust_name=RS.getString("CUST_NAME");

%>
<year value="<%=cust_name%>">
<%
database.setSql("SELECT PRODUCT_MIX_ID FROM DEVICE WHERE CUST_CODE='"+cust_code+"'");
ResultSet RST=database.getSelect();
try{
while(RST.next())
{
product_id=RST.getString("PRODUCT_MIX_ID");
%>
<month value="<%=product_id %>">
<%
database.setSql("SELECT DEVICE_ID FROM DEVICE WHERE PRODUCT_MIX_ID='"+product_id+"'");
ResultSet RSTU=database.getSelect();
try{
while(RSTU.next())
{
device_id=RSTU.getString("DEVICE_ID");
%>
<date value="<%=device_id%>">


</date>
<%
}
}
catch(Exception e){}
%>
</month>
<%
}
}
catch(Exception e){}
%>
</year>
<%
}
}
catch(Exception e){}
%>
</xmldata>
</xml>

<script>
function qswhXml(num)
{
var i,j,arrTemp=[];
for(i=0;i<num;i++)
arrTemp[i]=document.all(arrSel[i]).options[document.all(arrSel[i]).selectedIndex].text
if(num==arrSel.length)
{
return;
}
with(document.all(arrSel[num])){
length=0
var obj=document.all.xmldata.XMLDocument.childNodes[0];
for(i=0;i<num;i++)
obj=obj.selectSingleNode(arrSel[i]+'[@value="'+arrTemp[i]+'"]');
for(i=0;i<obj.childNodes.length;i++)
options[length++].text=obj.childNodes[i].getAttribute("value");
onchange=new Function("qswhXml("+(num+1)+")");
onchange();
}
}
qswhXml(0);
</script>




<p>
<input type="submit" value="Commit" name="B1">
</p>
</fieldset>
</center>
</form>
<%
database.close();
%>
</body>

</html>
ychunshui 2003-08-02
  • 打赏
  • 举报
回复
请问用jstl可以实现吗?

能的话请给出代码?
Hodex 2003-07-31
  • 打赏
  • 举报
回复
应该可以,但可能结构不是很好
up一下
yxpweed 2003-07-31
  • 打赏
  • 举报
回复
我使用的是XML方式,页面不需要刷新就可以实现。要不要??
cloudlu 2003-07-31
  • 打赏
  • 举报
回复
使用iframe onchange事件改变iframe的src动态发送请求,然后根据查找结果改变下拉框值.我写过一个,解决数据量大时非常好使.
LiGun 2003-07-21
  • 打赏
  • 举报
回复
牛x什么亚,
现成东西不用,非要发明创造
94120144 2003-07-21
  • 打赏
  • 举报
回复
用APPLET;
或者,只能不停地刷新您的网页了
boat2002w 2003-07-21
  • 打赏
  • 举报
回复
凑合使吧
niexin 2003-07-21
  • 打赏
  • 举报
回复
还有,我不愿意用动态数组,是不是我太贪得无厌了?
niexin 2003-07-21
  • 打赏
  • 举报
回复
我不想用JavaScript,可不可以做到啊?
688wl 2003-07-21
  • 打赏
  • 举报
回复
在javascript版块中搜“关联”或“联动”,一堆一堆的。
Rain999 2003-07-21
  • 打赏
  • 举报
回复
都是用javascript实现,数据才用得着JSP或ASP.你照ASP的改一点就可以.

81,115

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧