各位高手:
小弟有一问题,请各位高手帮忙,我想写个三级联动,三个下拉列表的值都是从数据库里获取的.
用到SMARTY,在PHP页用mysql_fetch_array(),用$tpl->assign("main_list",$array);
将值传到模板页里.在模板页里用 <select name="s1" id="s1"> 
          <option value="0">请选择</option>
  {/foreach from=$main_list item=nav_id/}
  <option value="{/$nav_id.nav_id/}">{/$nav_id.nav_name/}</option>
  {//foreach/}
        </select>
将数据库的值输入到下拉列表中,这种情况怎么样才能做个三级联动呀.各位高手帮帮忙.
还有一个问题就是,我怎么样用一条SQL语句,将数据同时插入两个表中.

解决方案 »

  1.   

    二级联动他们都说,用Ajax技术。
      

  2.   

    下拉框连动,可以不用ajax,但是前提是在页面导入之前,将所有可能用到的数据都利用隐藏在form里,或者在javascript 数组中。
      

  3.   

    去找找SMARTY 方面的吧 应该有联动的内容的
      

  4.   

    <?php
    include "lib/session.php";
    @ $db = new mysqli("localhost","root","admin","cjcx");
    $query2 = "select * from major ";
    $result2 = $db ->query($query2);
    $num_major = $result2->num_rows;
    if($_GET[pid]!=""){ $_SESSION["pid"]=$_GET[pid]; }
    if($_GET[cid]!=""){ $_SESSION["cid"]=$_GET[cid]; }
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML><HEAD>
    <META http-equiv=Content-Type content="text/html; charset=gb2312">
    <LINK href="css/admin.css" type="text/css" rel="stylesheet">
    </HEAD>
    <script language="javascript">
    function selectdepartment(x){
        if(x!="请选择"){
           window.location.href='sgrade.php?pid='+x;
      } 
       } 
       function selectmajor(x){
        if(x!="请选择") {
           window.location.href='sgrade.php?cid='+x+"&pid="+form1.select2.value;
      } 
       }
    </script>
    <BODY>
    <TABLE cellSpacing=0 cellPadding=0 width="100%" align=center border=0>
    <form name="form1" method="post" action="editsgrade.php">
      <TR height=28>
        <TD background=images/title_bg1.jpg>当前位置: </TD></TR>
     <TR>
        <TD bgColor=#b1ceef height=1></TD></TR>
      <TR height=20>
        <TD background=images/shadow_bg.jpg></TD></TR></TABLE>
    <table align="center">
    <tr>
    <td>请选择班级:</td><td><select name="select2" onChange="selectdepartment(this.value);"  >
    <option  value="请选择" selected="selected"> 请选择</option>
    <?php for($i = 0; $i < $num_major; $i++)
    {
    $row2 = $result2->fetch_assoc();

    ?>
    <option value="<?php echo $row2[name]; ?>"
    <?php
       if($_SESSION["pid"]!="") {
          if($_SESSION["pid"]==$row2[name]){
           echo "selected=\"selected\""; 
         }
        }
    ?> > <?php echo $row2[name];?></option>
    }
    <?php
      
    }
    ?>
    </select></td>
    <td>请选择课程:</td><td><select name="select5" onChange="selectmajor(this.value);"  >
    <option  value="请选择" selected="selected"> 请选择</option>
    <?php if($_GET[pid]!="") { ?>
       <?php 
       $query5="select * from teachersourse where major='".$_GET[pid]."'";  
    $result5 = $db ->query($query5);
    $num_teachercourse = $result5->num_rows;
    ?>
    <?php for($i = 0; $i < $num_teachercourse; $i++)
    {
    $row5 = $result5->fetch_assoc();
    ?>
    <option value="<?php echo $row5[course]; ?>"
    <?php
       if($_SESSION["cid"]!="") {
          if($_SESSION["cid"]==$row5[course]){
           echo "selected=\"selected\""; 
         }
        }
    ?> > <?php echo $row5[course];?></option>
    }
    <?php
    }}
    ?>
    </select></td>
    <td><input type="submit" value="查找" /></td>
    </tr>
    </table>
    </body>
    </html>这个是我做的二级联动
      

  5.   

    二级联动和三级联动原理一样的,直接用ajax就可以的,你理解了二级的,三级,四级就都能做了
      

  6.   

    直接用jquery就能很方便实现,先将级联的下拉外面套上div给div写上id,然后用$('#divid名').load('对应处理的url');