<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>emu</title>
<SCRIPT LANGUAGE="JavaScript">
<!--
var ar=[["计算机系","数据结构"],["计算机系","算法分析"],["自动化系","电机原理"],["自动化系","模拟电路"]]
var departments=new Array()
function getDepartment()
{
for (var i=0;i<ar.length;i++)
{
var d = ar[i][0]
var s = ar[i][1]
if (departments[d]==null)
departments[d]=new Array()
departments[d][s]=s
}
for (i in departments)
{
var op = new Option()
op.innerText=i;
op.value=i;
department.insertBefore(op);
}
setTimeout("getSubject()",0)
}
function getSubject()
{
var d = department.value;
var subjects = departments[d];
while (subject.options.length>0)
subject.removeChild(subject.lastChild)
for (i in subjects)
{
var op = new Option()
op.innerText=i;
op.value=i;
subject.insertBefore(op);
}
}
//-->
</SCRIPT>
</head>
<body onload=getDepartment()>
<select id=department onChange="getSubject()"></select>
<select id=subject></select>
</body>
</html>基本原理大概就这样,其中的ar数组你要自己在服务器端生成页面的时候从数据库查出来系和专业后生成。

解决方案 »

  1.   

    哦,上面的代码放进表单就不能运行了,改了一下,把select放进表单的写法是这样:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>emu</title>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    var ar=[["计算机系","数据结构"],["计算机系","算法分析"],["自动化系","电机原理"],["自动化系","模拟电路"]]
    var departments=new Array()
    function getDepartment()
    {
    for (var i=0;i<ar.length;i++)
    {
    var d = ar[i][0]
    var s = ar[i][1]
    if (departments[d]==null)
    departments[d]=new Array()
    departments[d][s]=s
    }
    for (i in departments)
    {
    var op = new Option()
    op.innerText=i;
    op.value=i;
    form1.department.insertBefore(op);
    }
    setTimeout("getSubject()",0)
    }
    function getSubject()
    {
    var d = form1.department.value;
    var subjects = departments[d];
    with (form1.subject)
    while (options.length>0)
    removeChild(lastChild)
    for (i in subjects)
    {
    var op = new Option()
    op.innerText=i;
    op.value=i;
    form1.subject.insertBefore(op);
    }
    }
    //-->
    </SCRIPT>
    </head>
    <body onload=getDepartment()>
    <form name=form1>
    <select name=department onChange="getSubject()"></select>
    <select name=subject></select>
    </form>
    </body>
    </html>
      

  2.   

    服务器是tomocat 数据库就是access啊
      

  3.   

    用jsp啊,直接从数据库select出来的结果集就是Vector,而Vector的toString方法和javascript的数组表达方式正好相同。我一般就:
    <script>
    var ar = <%=resultSet%>
    </script>
    其中resultSet是结果集。
    注意字符串不会自动带上引号,我是直接把引号写进sql的:select '\"'+departInfo.departmentName+'\"','\"'+subjectName+'\"' from departmentInfo,subjectInfo where departmentInfo.departmentName=subjectInfo.departmentName随手写的,可能要具体调一下。