如果是点了a以后没经过跳转就想查数据库是不可能的。
a下拉可以触发javascript。
但是在javascript里不能调用java代码。

解决方案 »

  1.   

    应该是这个意思吧,我的代码如下,看不懂的话给我留信,或者发EMAIL:[email protected]
     <%@ page language="java" import="java.sql.*" %>
    <jsp:useBean id="workM" scope="page" class="Show.DBconn" /> <form name="form1" method="post" action="">
     <%!
    public String getStr1(String str)
    {
    try
    {
    String temp_p=str;
    byte[] temp_t=temp_p.getBytes("gb2312");
    String temp=new String(temp_t,"ISO8859-1");
    return temp;
    }
    catch(Exception e)
             {
     e.printStackTrace();

    return "无";
    }
    }
    %><%     String sql2,sql1;
        sql2="select * from School ";
        sql1="select * from Class ";
        //out.print(sql2);
    ResultSet school=workM.executeQuery(sql2);   //取所有的学校结果集
    ResultSet classrs=workM.executeQuery(sql1); //取所有学校下面的所有班级结果集
    String SID=""; 
    %>
    <select name="ShlName"  onchange="showC2()" style="width:150">
    <option value="0" selected>请选学校名</option>
    <%
    while (school.next())
    {
    SID=school.getString("SchoolID");
    %><option value="<%=SID%>"><%=getStr1(school.getString("SchoolName"))%></option>
    <%
    }
    school.close();%>
    </select>
    <font color="#FF0000">*</font> 
    <SCRIPT LANGUAGE="JavaScript">
    c2Name=new Array();  //班级名
    c2Id=new Array();    //班级IDfunction showC2(){
         selected=document.form1.ShlName.selectedIndex;
     if(selected==0){
            document.form1.ClassName2.length=0;
            document.form1.ClassName2.length++;
    document.form1.ClassName2.options[document.form1.ClassName2.length-1].value="0";
    document.form1.ClassName2.options[document.form1.ClassName2.length-1].text="请选择班级";
            //showClassName2All();
           return ;
     }     index=document.form1.ShlName.options[selected].value;
         document.form1.ClassName2.length=0;
     for(i=0;i<c2Name.length;i++){
    if(c2Id[i].indexOf(index)!=-1){
                 document.form1.ClassName2.length++;
     document.form1.ClassName2.options[document.form1.ClassName2.length-1].value=c2Id[i];
     document.form1.ClassName2.options[document.form1.ClassName2.length-1].text=c2Name[i];
    }
     }
    }
    <%
    int count=0;
    while (classrs.next()){
    String t_id=classrs.getString("ClassID");
    String t_name=classrs.getString("ClassName");
    t_name=getStr1(t_name);
    out.println("c2Name["+count+"]=\""+t_name+"\";");
    out.println("c2Id["+count+"]=\""+t_id+"\";");
    count++;
    }
    classrs.close();%>
    </SCRIPT>
    <SELECT NAME="ClassName2" style="width:150">
    <option value="0" selected >请选择班级</option>
    </SELECT>
    </form>
      

  2.   

    网上有现成的菜单联动代码,不过显示页面的时候,其实所有的内容已经压入到页面上了,你此时要做的只是用 javascript 来控制选择a的时候显示菜单a对应的内容
      

  3.   

    用iframe做,父页提交到子页,子叶查询后显示!
      

  4.   

    这个可以,不过获取到是的下拉框中的当值位置,我也不知道怎么获取位置上的值
    如果你知道帮忙告诉我大家共同进步我的QQ是:153016961
           <%
      String action_fil=request.getParameter("gg");  
     out.print(action_fil);
      
           %>
    <body onLoad="init();">
    <form name=form1 action="aa.jsp?ation_file=a">
    <table width="300" cellpading="0" cellspacing="0" border="0">
    <tr>
    <td width="100"><select name="gg" id="dltProvince" onchange="AddOptions(dltCity,eval('arr'+gg.selectedIndex));AddOptions(dltArea,eval('arr'+gg.selectedIndex+dltCity.selectedIndex));ShowValue();" style="width:100%"></select>
    </td>
    <td width="100"><select id="dltCity" onchange="AddOptions(dltArea,eval('arr'+dltProvince.selectedIndex+dltCity.selectedIndex));ShowValue();" style="width:100%"></select>
    </td>
    <td width="100"><select id="dltArea" style="width:100%" onchange="ShowValue()"></select></td>
    <td width="100">
    <input type="hidden" id="OutValue" value="">
    <input type="text" id="txtOutText" style="width:100%">
    </td>
    </tr>
    <tr>
    <td>
      <select name=g id="aa">
      <option value=fd>dsf
      <option value=fdfa>fds
      <option value=fdfd>fds </select>
      <input type=text name=hh value=jjjjj>
      <input type=submit name=hhhhh value=jjjjj>
    </td>
    </tr>
    </table>
    </form>
    </body>
    </head>
    </html>
    <script language=javascript>
    <%// rs3=db.exQuery  %>
    var arr="浙江|江苏|安徽|江西";
    var arr0 = "杭州|宁波|温州|绍兴"; //这些数据可以从数据库中取得
    var arr1 = "南京|苏州|无锡|常州";
    var arr2 = "合肥|翕县|黄山|祁门";
    var arr3 = "南昌|九江|赣州|上饶"; var arr00 = "杭州A区|杭州B区"; 
    var arr01 = "宁波A区|宁波B区"; 
    var arr02 = "温州A区|温州B区"; 
    var arr03 = "绍兴A区|绍兴B区"; var arr10 = "南京A区|南京B区"; 
    var arr11 = "苏州A区|苏州B区"; 
    var arr12 = "无锡A区|无锡B区"; 
    var arr13 = "常州A区|常州B区"; var arr20 = "合肥A区|合肥B区"; 
    var arr21 = "翕县A区|翕县B区"; 
    var arr22 = "黄山A区|黄山B区"; 
    var arr23 = "祁门A区|祁门B区"; var arr30 = "南昌A区|南昌B区"; 
    var arr31 = "九江A区|九江B区"; 
    var arr32 = "赣州A区|赣州B区"; 
    var arr33 = "上饶A区|上饶B区"; //alert(eval("arr"+2+1));
    function AddOptions(dltObj,arrObj)
    {
    dltObj.innerHTML="";
    var arrLocation=arrObj.split("|");
    for(var i=0;i<arrLocation.length;i++){
    var opt=document.createElement("OPTION");
    dltObj.add(opt);
    opt.value=i;
    opt.text=arrLocation[i];
    }
    }
    function init(){
    AddOptions(form1.gg,eval('arr'));
    AddOptions(form1.dltCity,eval('arr'+form1.gg.selectedIndex));
    AddOptions(form1.dltArea,eval('arr'+form1.gg.selectedIndex+form1.dltCity.selectedIndex));
    ShowValue();
    }
    function ShowValue(){
    var dltAr=document.getElementById("dltArea");
    var hidId=document.getElementById("OutValue");
    var txtText=document.getElementById("txtOutText");
    hidId.value=dltAr.options[dltAr.selectedIndex].value;
    txtText.value=dltAr.options[dltAr.selectedIndex].text;}
    </script>