我想把你原来的单表三级连动改为三个表的三级,因为
departments,
professional,和sm_required 的属性都不同,所以要用三个表。院系决定有什么专业,而专业决定要上什么科目。但我改了一下你的代码,只能显示到第二级:
 //---------------------------------------------
<?php$conn = mysql_connect("localhost","root",""); // 连接数据库
mysql_select_db("sm"); // 选择库if(!isset($_GET['key'])) { // 检查是否有传递参数
  $sql = "select * from sm_departments "; 
  $rs = mysql_query($sql);
  $str = "";
  while($row = mysql_fetch_array($rs)) // 循环构造初始信息
    $str .= "<option value='{$row['departments_id']}'>{$row['departments_name']}\n";
}else { // 有,产生脚本代码
  $sql = "select * from sm_professional  where departments_id={$_GET['key']}";
  $rs = mysql_query($sql);
  $obj = substr($_GET['obj'],0,-1) . (substr($_GET['obj'],-1)+1);
  $str = "$obj.options.length = 0;\n";
  while($row = mysql_fetch_array($rs))
    $str .= "$obj.options[$obj.options.length] = new Option('{$row['professional_name']}',{$row['professional_id']});\n";
  echo $str;  exit;
}
?>
本方法通过改变script标记的src属性来达到动态修改列表框的内容<br>
<script id="sensele" src=""></script>
<script>
function loadsele(v) {
  var s = v.options[v.selectedIndex].value;
  sensele.src = "?obj="+v.id+"&key="+s;
}
</script>
<select id="sele1" onchange="loadsele(this)">
<?php echo $str; ?>
</select>
<select id="sele2" onchange="loadsele(this)">>
</select>
<select id="sele3">
</select><?php print_r($_GET);?>
//--------------------------------
请问怎么第三级也能显示?

解决方案 »

  1.   

    怎么样传入第三级的参数?
    原来的你是单表结构的:
    CREATE TABLE `menu` (
      `id` int(10) NOT NULL,
      `parent_id` varchar(40) default NULL,
      `name` varchar(50) default NULL,
      PRIMARY KEY  (`id`)
    ) ;
      

  2.   

    我用的是JSP 怎么就不行呢  请指教                栏目:<select id="topic_id" onchange="loadsele(this)">
    <% while(rs.next()){%> <option value=<%=rs.getString("topic_id")%>> <%=rs.getString("topic_name")%></option>
    <%}%>
    </select></p>
    <script>
    function loadsele(v) {
      var s = v.options[v.selectedIndex].value;
      sensele.src = "http://192.168.1.118:8080/listEdition.jsp?"+v.id+"="+s;
    }
    </script>
    版名:<select id=editionid>
    <script id="sensele" src="http://192.168.1.118:8080/listEdition.jsp?edition_id=1"></script>      </select>
    </form>