select 下拉框的问题
如有两个下拉框是关联的
select 下拉框
有两个数据表a,b也是关联的
第一个下拉框的值是从表a中读取选中第一个下拉框的值后
第二个下拉框的值是获取第一个下拉框的表a,的id值再从表b中查找
请问????
怎么做才传到
第二个下拉框呢
应该怎么做??如果是这样呢
<select name="class_id">
<%
   
 Music_resource_class music_resource_class = new Music_resource_class();
//music_resource_class.webRequest(request);
Music_resource_class[] music_resource_class_array = music_resource_class.select();
for (int i=0;i<music_resource_class_array.length&&music_resource_class_array[i]!=null;i++)
{
%>
 <option value="<%=music_resource_class_array[i].getClass_id()%>"  onChange="getValue()"><%= music_resource_class_array[i].getClass_name()%></option>
<%} %>
</select><label>
<select name="parse_id">
<%
 Music_resource_classparse music_resource_classparse = new Music_resource_classparse();
 
 music_resource_classparse.setClass_id(id);  */这里的id是要取music_resource_class_array[i].getClass_id()的值*/ Music_resource_classparse[] music_resource_classparse_array= music_resource_classparse.whereClass_id();
 for (int j=0;j<music_resource_classparse_array.length&&music_resource_classparse_array[j]!=null;j++)
{
out.println("<option value="+music_resource_classparse_array[j].getClass_id()+">"+music_resource_classparse_array[j].getParse_name()+"</option>");
    
}
%>
</select>那怎么做??

解决方案 »

  1.   

    //用JS提交表单
    <script>
      function getValue(){
        document.getElementById("sel").submit();
      }
    </script>
    //表单action 设置为空,提交到本页面
    <form id="sel" action="">
    <select name="class_id">
    <%
       
     Music_resource_class music_resource_class = new Music_resource_class();
    //music_resource_class.webRequest(request);
    Music_resource_class[] music_resource_class_array = music_resource_class.select();
    for (int i=0;i<music_resource_class_array.length&&music_resource_class_array[i]!=null;i++)
    {
    %>
     <option value="<%=music_resource_class_array[i].getClass_id()%>"  onChange="getValue()"><%= music_resource_class_array[i].getClass_name()%></option>
    <%} %>
    </select><label>
    <select name="parse_id">
    <%
     Music_resource_classparse music_resource_classparse = new Music_resource_classparse();
    //==========================================
    //取得ID值
     String id=request.getParameter("class_id");
     //如果没有选择第一个,ID为空
     if(id==null || id.equals("")){
        out.print("<option>请选择第一个下拉值</option>");
     }else{
    //id不为空,执行下面的代码
    //==========================================
     music_resource_classparse.setClass_id(id);  */这里的id是要取music_resource_class_array[i].getClass_id()的值*/ Music_resource_classparse[] music_resource_classparse_array= music_resource_classparse.whereClass_id();
     for (int j=0;j<music_resource_classparse_array.length&&music_resource_classparse_array[j]!=null;j++)
    {
    out.println("<option value="+music_resource_classparse_array[j].getClass_id()+">"+music_resource_classparse_array[j].getParse_name()+"</option>");
        
    }
    //=============================================
    }
    %>
    </select>
    //==================
    //表单结束
    </form>
      

  2.   

    但不会在
    选择 <select name="class_id">的值后
    <select name="parse_id">的值也相应的改变啊
    ??
      

  3.   

    if(id==null || id.equals("")){
        out.print("<option>请选择第一个下拉值</option>");
     }else{
    //id不为空,执行下面的代码
    //==========================================
     music_resource_classparse.setClass_id(id);  */这里的id是要取music_resource_class_array[i].getClass_id()的值*/ Music_resource_classparse[] music_resource_classparse_array= music_resource_classparse.whereClass_id();
     for (int j=0;j<music_resource_classparse_array.length&&music_resource_classparse_array[j]!=null;j++)
    {
    out.println("<option value="+music_resource_classparse_array[j].getClass_id()+">"+music_resource_classparse_array[j].getParse_name()+"</option>");
        
    }
    //=============================================
    那就要看你上面这段代码是否正确了,上面这段应该是从数据库中根据ID读取第二个下拉的内容,然后循环展示到页面上的
      

  4.   

    是呀.
    但在
    选择 <select name="class_id">的值后
    <select name="parse_id">的值是空的啊
      

  5.   

    看看
    String id=request.getParameter("class_id");
    System.out.println(id);
    输出id看看取到值了没有?
      

  6.   

    <select name="parse_id">的值是 请选择第一个下拉值
      

  7.   

    <script>
      function getValue(){
        document.getElementById("sel").submit();
      }
    </script>
    这个是不是要提交键才会运行呀
      

  8.   

    <script language="JavaScript" type="text/javascript">
    function getValue(){
        document.getElementById("sel").submit();
    </script>
    </HEAD><BODY>
    <%@ include file="import.jsp"%>
    <%
        request.setCharacterEncoding("gb2312");
    ResultSet rs = null;
    String sql;
    if (request.getParameter("chinese_name")!=null)
    {
      Music_resource_info music_resource_info = new Music_resource_info();
      music_resource_info.webRequest(request);
      music_resource_info.insert();
      out.println("更新成功!");
    if (request.getParameter("song_word")!=null)
     {
       DatabaseAccess dba = new DatabaseAccess();
       Music_song_word music_song_word = new Music_song_word();
       sql="select resource_id from MUSIC_RESOURCE_INFO  order by resource_id desc";
       music_resource_info.setSql(sql);
       rs = dba.executeQuery(music_resource_info.getSql());
       if(rs.next()){
       rs.first();
       music_song_word.setResource_id(rs.getInt("resource_id"));
         }
       else{
       music_song_word.setResource_id(1);
       }
       music_song_word.webRequest(request);
       music_song_word.insert();
      }}
    %>
    <FORM METHOD=POST ACTION="" name="sel" id="sel">
    <table width="600" border="1">
    <tr bgcolor="#F8F8F8" align="center" height="25"><td colspan="2"><b><font color="#FF0000" size="3">添加歌曲信息</font></b></td></tr>
    <tr height="30" bgcolor="#FFFFFF">
    <td width="25%">&nbsp;专辑名称:</td>
    <td width="75%"><INPUT TYPE="text" NAME="special"></td>
    </tr>
    <tr height="30" bgcolor="#FFFFFF">
      <td>&nbsp;英文名:</td>
      <td><INPUT TYPE="text" NAME="english_name"></td>
    </tr>
    <tr height="30" bgcolor="#FFFFFF">
      <td>&nbsp;中文名:</td>
      <td><INPUT TYPE="text" NAME="chinese_name"></td>
    </tr>
    <tr height="30" bgcolor="#FFFFFF">
    <td width="25%">&nbsp;歌曲类型:</td>
    <td width="75%"><select name="class_id">
    <%
       
     Music_resource_class music_resource_class = new Music_resource_class();
    //music_resource_class.webRequest(request);
    Music_resource_class[] music_resource_class_array = music_resource_class.select();
    for (int i=0;i<music_resource_class_array.length&&music_resource_class_array[i]!=null;i++)
    {
    ///out.println("<option value="+music_resource_class_array[i].getClass_id()+">"+music_resource_class_array[i].getClass_name()+"</option>");
     
    //}
    %>
     <option value="<%=music_resource_class_array[i].getClass_id()%>"  onChange="getValue()"><%= music_resource_class_array[i].getClass_name()%></option>
    <%} %>
    </select><label>
    <select name="parse_id">
    <%
     Music_resource_classparse music_resource_classparse = new Music_resource_classparse();
     String id=request.getParameter("class_id");
     
     if(id==null || id.equals("")){
        out.print("<option>请选择第一个下拉值</option>");
    out.println(id);
     }else{
      int p_id=Integer.parseInt(id);
      music_resource_classparse.setClass_id(p_id);
      out.println(id);
     }
     
     Music_resource_classparse[] music_resource_classparse_array= music_resource_classparse.whereClass_id();
     for (int j=0;j<music_resource_classparse_array.length&&music_resource_classparse_array[j]!=null;j++)
    {
    out.println("<option value="+music_resource_classparse_array[j].getClass_id()+">"+music_resource_classparse_array[j].getParse_name()+"</option>");
        
    }
    %>
    </select></label></td>
    </tr><tr height="30" bgcolor="#FFFFFF">
    <td width="25%">&nbsp;歌曲首字母:</td>
    <td width="75%"><INPUT TYPE="text" NAME="song_frist"></td>
    </tr>
    <tr height="30" bgcolor="#FFFFFF">
      <td>&nbsp;查找关键字:</td>
      <td><INPUT TYPE="text" NAME="search_keyword"></td>
    </tr>
    <tr height="30" bgcolor="#FFFFFF">
    <td width="25%">&nbsp;备注:</td>
    <td width="75%"><INPUT TYPE="text" NAME="memo"></td>
    </tr>
    <tr height="30" bgcolor="#FFFFFF">
    <td width="25%">&nbsp;歌手:</td>
    <td width="75%"><select name="singer_id">
      <%
     Music_singer music_singer = new Music_singer();
    Music_singer[] music_singer_array = music_singer.select();
    for (int i=0;i<music_singer_array.length&&music_singer_array[i]!=null;i++)
    {
    out.println("<option value="+music_singer_array[i].getSinger_id()+">"+music_singer_array[i].getSinger_name()+"</option>");
    }
    %>
    </select></td>
    </tr>
    <tr height="30" bgcolor="#FFFFFF">
      <td class="STYLE2"><font size="3">&nbsp;歌词</font></td>
      <td><textarea name="song_word" rows="" cols=""></textarea></td>
    </tr>
    <tr height="30" bgcolor="#FFFFFF"><td width="25%">&nbsp;</td><td width="75%"><INPUT TYPE="submit"><INPUT TYPE="reset"></td></tr>
    </table>
    </FORM>
    <a href="Music_resource_infoSelect.jsp">返回</a></BODY></HTML>
      

  9.   

    <script language="JavaScript" type="text/javascript">
    function getValue(){
        document.getElementById("sel").submit();
    </script>
    ==============
    这少个 }这个方法在这里调用
    <select name="class_id" onChange="getValue();">
    ==============
    把你的
    %>
     <option value="<%=music_resource_class_array[i].getClass_id()%>"  onChange="getValue()"><%= music_resource_class_array[i].getClass_name()%></option>
    <%} %>
    </select>
    这其中的
    onChange="getValue()"这个去掉
      

  10.   

    这里需要修改的<select name="class_id" onChange="getValue();">
      

  11.   

    有个问题
    在选择 <select name="class_id">的值后
    <select name="parse_id">的值只列出一个值
    还有会自动更新
    out.println("更新成功!");