本帖最后由 vgy12304 于 2010-02-25 12:13:52 编辑

解决方案 »

  1.   

    用 JQUERY 可简单,实现无限级联动,
    <script type="text/javascript" src="../../include/js/jquery-1.3.2.min.js"></script><script type="text/javascript">
    $(function(){
    $("#a").load("first.php?id="+$("#a").val());
    })
    </script>
    异步调用,这样有多少分类,就 有多少个php文件,我是这样搞的,因为我经常用jquery.js
      

  2.   

    first.php?id=* 是根据id返回的一个combox,
    上面代码少了一些
    <script type="text/javascript"> 
    $(function(){ 
    $("#select1").click(function(){
    $("#div1").load("1st.php?id="+$("#select1").val()); 
    }) ;
    $("#select2").click(function(){
    $("#div2").load("2nd.php?id="+$("#select2").val()); 
    }) ;
    $("#select3").click(function(){
    $("#div3").load("3th.php?id="+$("#select3").val()); 
    }) ;
    ………………
    })
    </script> <select name="select1" id="select1" >
    </select>
    <div id="div1"><select name="select2" id="select2" >
    </select></div>其中1st.php?id=^ 返回 的内容是<select name="select2" id="select2" >
    </select>依次往下……
      

  3.   

    数据有多少?一千行?
    1,生成js文件,在客户端做递归
    2,生成php数组,发挥想象力
      

  4.   

    贡献你一个函数/*
     *调整顺序
     *$upid——要提取的upid下的信息[默认从零开始递增]
     */
    function listOrder($arr,$upid=0,$newTB='')
    {
    $info = array();
    $sub = array();
    $temp = array();

    foreach($arr as $aName => $aValue)
    {
    if($aValue[$newTB.'upid']==$upid)
    {
    $temp = $aValue;
    $sub = listOrder($arr,$aValue[$newTB.'id'],$newTB);
    $info[] = $temp;
    //$info[] = $sub;
    if(isset($sub)&&count($sub)!=0)
    {
    foreach($sub as $sName => $sValue)
    $info[] = $sValue;
    }
    unset($arr[$aName]);
    }
    }
    return $info;
    }当 $upid=0  时,是排序   当$upid!=0时,是获取当前分类下的所有子分类