代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<jsp:useBean id="query" scope="session" class="weblistbean.QueryBean" />
<%@ page language="java" contentType="text/html;charset=gb2312"
    import="java.sql.*"
  import="java.io.*"
  import="java.util.*"
  import="javax.sql.*"
  import="javax.naming.*"
  import="java.text.*"
  import="java.lang.*"
%>
<script language="JavaScript">
var sall=new Array();
////////////////
<%
   String checkstring;
  // stringSqlString="select SITE_ID,SITE_NAME from T_DIC_SUBSITE";
   checkstring="SELECT T_DIC_CHANNELSET.SITE_ID, T_DIC_CHANNELSET.INFECTANT_ID, T_DIC_INFECTANT.INFECTANT_NAME  FROM T_DIC_CHANNELSET INNER JOIN T_DIC_INFECTANT ON  T_DIC_CHANNELSET.INFECTANT_ID = T_DIC_INFECTANT.INFECTANT_ID WHERE (T_DIC_CHANNELSET.SITE_ID = '0132')";   ResultSet rscheck=query.getResult(checkstring);
   int i=0;
%>
<%
 //  while(rscheck.next()){
%>
  //sall[<%=i%>]=new Array(<%=rscheck("SITE_ID")%>,<%=rscheck("INFECTANT_ID")%>,<%=rscheck("INFECTANT_NAME")%>);
<%
     i++;
   }
%>
////////////////
function changeselect(selvalue)  
   { 
      document.all.wrw_name.length=0;  
      var selvalue=selvalue;
      var i;
      for(i=0;i<sall.length;i++) 
 {
     if(sall[i][0]==selvalue) 
        {
  var newOption1=new Option(sall[i][2],sall[i][0]);
   document.all.wrw_name.add(newOption1);
  }
 }
}
</script><%
  String stringSqlString;
//SELECT T_DIC_CHANNELSET.SITE_ID, T_DIC_CHANNELSET.INFECTANT_ID, T_DIC_INFECTANT.INFECTANT_NAME  FROM T_DIC_CHANNELSET INNER JOIN T_DIC_INFECTANT ON  T_DIC_CHANNELSET.INFECTANT_ID = T_DIC_INFECTANT.INFECTANT_ID WHERE (T_DIC_CHANNELSET.SITE_ID = '0132')   // sql="SELECT ALARM_TIME,SITE_ID,INFECTANT_ID,STANDARD_VALUE,ACTUAL_VALUE, MEMO FROM ALARM";
  // stringSqlString="SELECT a.ALARM_TIME, b.SITE_NAME, a.INFECTANT_ID, a.STANDARD_VALUE,a.ACTUAL_VALUE";
  // stringSqlString=stringSqlString+"a.MEMO FROM ALARM a LEFT OUTER JOIN T_DIC_SUBSITE b ON a.SITE_ID = b.SITE_ID WHERE (CONVERT(char(10), a.ALARM_TIME, 120) >= '2006-08-10') AND (CONVERT(char(10), a.ALARM_TIME, 120) <= '2006-08-16')";
  // stringSqlString=stringSqlString+" FROM ALARM a LEFT OUTER JOIN T_DIC_SUBSITE b ON a.SITE_ID = b.SITE_ID WHERE (CONVERT(char(10), a.ALARM_TIME, 120) >= '2006-08-10') AND (CONVERT(char(10), a.ALARM_TIME, 120) <= '2006-09-16')";
    stringSqlString="select SITE_ID,SITE_NAME from T_DIC_SUBSITE";
     ResultSet rs=query.getResult(stringSqlString);
 %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<LINK href="Scripts/Global.css" type="text/css" rel="stylesheet">
<LINK href="Scripts/Web_Catalog.css" type="text/css" rel="stylesheet">
<LINK href="Scripts/admin.css" type="text/css" rel="stylesheet">
<title>污染物站点</title>
</head><body>
<form name="form1" method="post" action="">
  <table align="center" id="tabList" borderColorDark="#EBEFFC" borderColor=#3399FF borderColorLight="#CCD7F7" class="itemList" border="1" cellpadding="3" cellspacing="0" width="100%">
    <tr> 
      <td width="36%" height="14" align="right">站点名称&nbsp;</td>
      <td width="64%" align="left">    
   <select name="siteid_name" id="siteid_name" onChange="changeselect(document.all.siteid_name.options[document.all.siteid_name.selectedIndex].value)">
   <%
   while(rs.next()) {
  %>
   <option value=<%=rs.getString("SITE_ID")%>  ><%=rs.getString("SITE_NAME")%> </option>
   <%
    }
%>
        </select>

</td>
    </tr>
    <tr> 
      <td align="right">污染物&nbsp;</td>
      <td align="left">
    <select name="wrw_name" id="wrw_name">
        </select>
</td>
    </tr>
  </table>
</form>
</body>
</html>

解决方案 »

  1.   

    说实话,我看到一大段的东西头就晕。你的代码结构性十分不好,既然你用到了javabean,为什么不把逻辑部分全部放到后台bean中,jsp页面只负责显示呢?你想在页面实现选择一个列表项,然后改变另外一个列表项的内容吧?几种方法
    1:简单的,选择列表后提交页面 
    2:数据量不大时,把所有数据保存在javascript数组中,这样在js中可以直接使用
    3:使用无页面刷新技术(ajax)
      

  2.   

    回复人:pdvv(我爱花猫) ( 五级(中级)) 信誉:100  2006-12-11 16:07:08  得分:0

    说实话,我看到一大段的东西头就晕。你的代码结构性十分不好,既然你用到了javabean,为什么不把逻辑部分全部放到后台bean中,jsp页面只负责显示呢?你想在页面实现选择一个列表项,然后改变另外一个列表项的内容吧?几种方法
    1:简单的,选择列表后提交页面
    2:数据量不大时,把所有数据保存在javascript数组中,这样在js中可以直接使用
    3:使用无页面刷新技术(ajax)----------------------------------------------------------说的好
      

  3.   

    别的地方  也不用啊 
    主要问题就是这里  
    ////////////////
    <%
       String checkstring;
      // stringSqlString="select SITE_ID,SITE_NAME from T_DIC_SUBSITE";
       checkstring="SELECT T_DIC_CHANNELSET.SITE_ID, T_DIC_CHANNELSET.INFECTANT_ID, T_DIC_INFECTANT.INFECTANT_NAME  FROM T_DIC_CHANNELSET INNER JOIN T_DIC_INFECTANT ON  T_DIC_CHANNELSET.INFECTANT_ID = T_DIC_INFECTANT.INFECTANT_ID WHERE (T_DIC_CHANNELSET.SITE_ID = '0132')";   ResultSet rscheck=query.getResult(checkstring);
       int i=0;
    %>
    <%
     //  while(rscheck.next()){
    %>
      //sall[<%=i%>]=new Array(<%=rscheck("SITE_ID")%>,<%=rscheck("INFECTANT_ID")%>,<%=rscheck("INFECTANT_NAME")%>);
    <%
         i++;
       }
    %>
    ////////////////我不明白 你的代码结构怎么架够。
    这段代码在这里 不能正确执行啊 ,我要的是怎么能改  让他执行起来
    ajax)  我也看到他写的代码了。我是不能让他的代码运行起来,所以 我用很普通的方法。如果是asp 就好办了 问题就是这个在JavaScript 里让我的代码能运行 错误提示是:
    Generated servlet error:
        [javac] Compiling 1 source file
        [javac] D:\jboss3\server\lngprs\work\MainEngine\localhost\_\weblist\wrwzd_jsp.java:81: cannot resolve symbol
        [javac] symbol  : method rscheck (java.lang.String)
        [javac] location: class org.apache.jsp.wrwzd_jsp
        [javac]       out.print(rscheck("SITE_ID"));
        [javac]                 ^
        [javac] D:\jboss3\server\lngprs\work\MainEngine\localhost\_\weblist\wrwzd_jsp.java:83: cannot resolve symbol
        [javac] symbol  : method rscheck (java.lang.String)
        [javac] location: class org.apache.jsp.wrwzd_jsp
        [javac]       out.print(rscheck("INFECTANT_ID"));
        [javac]                 ^
        [javac] D:\jboss3\server\lngprs\work\MainEngine\localhost\_\weblist\wrwzd_jsp.java:85: cannot resolve symbol
        [javac] symbol  : method rscheck (java.lang.String)
        [javac] location: class org.apache.jsp.wrwzd_jsp
        [javac]       out.print(rscheck("INFECTANT_NAME"));
        [javac]                 ^
        [javac] 3 errors
      

  4.   

    rscheck是ResultSet类型的对象,代表一个结果集。如果要取它的值,使用
    <%=rscheck.getString("INFECTANT_ID")%><%=rscheck.getString("INFECTANT_NAME")%>