本帖最后由 garcon1986 于 2009-12-16 19:10:53 编辑

解决方案 »

  1.   

    你只说出了错误的表现,没告诉大家正确的显示啊!显示隐藏层只是客户端表现,先用静态页面做出正确的效果再修改成php输出吧。
      

  2.   


    恩,效果已经做出来了,当你把div中的php代码都注释掉以后能看到正确的效果。如果访问我提供的图片,能看到问题所在:我想要的结果是点击entreprise1会弹出entreprise1内的site,但是现在无论是点击entreprise1,还是entreprise2显示的都是e2_site1和e2_site2。也就是说,总是显示列表最后一项对应的站点e2site1,e2site2。
    依次类推,点击站点栏的任何项都显示e2_site2_salarie1,e2_site2_salarie2,e2_site2_salarie3。大家有什么看法?
      

  3.   

    你的静态页面效果中每个<ul>中不同的li所控制的层应该是不同的,但是你用php的while输出记录时每个li所控制的层都是相同的!
    你从浏览器中查看php输出的源文件就能看出和你手工效果页面在toggle内参数是有区别的。
      

  4.   


    区别是什么?我现在把<div id="main">改为:<div id="main" onclick=\"toggle('hidden','hidden2','hidden3');\"> 效果是一样的。不知道如何改正能每次点击显示相对应的内容。 像enterprise1->e1_site1->e1_site1_salarie1这样。
      

  5.   


      
    while($row = mysql_fetch_assoc($result)){
                echo "<li onclick=\"toggle('hidden','hidden2','hidden3');\">".$row['name'].'<li>';
                $query2 = "SELECT * FROM site WHERE eid = '".$row['id']."'";
                //echo $query2;
                $result2 = mysql_query($query2) or die("query2 result error".mysql_error());
            }
      最后一个$result遍历记录得出来的$result2(而且只执行一次) ,同样$result3,$result4也一样。 你的代码就是这样的。。当然你可以把 }放在最后$result4会得到所有的你想要的
    ,但是那样你的这个页面的执行会很慢。
    个人建议你用array[]得出你想要的结果然后显示。。
      

  6.   

    补充:$result2只在这里执行了一次。。
     while($row2 = mysql_fetch_assoc($result2)){
                echo "<li onclick=\"toggle('hidden2','hidden3')\">".$row2['name'].'< >';
                $query3 = "SELECT * FROM salarie WHERE siteid =".$row2['id'];
                //echo $query3;
                $result3 = mysql_query($query3) or die("query3 result error".mysql_error());
            }
      

  7.   

    如果把}放到最后,就会只显示enterprise1而在result4的结果后显示enterprise2,3等等。用array[]得到结果,怎么用呢? 
      

  8.   

    请问该怎么用呢?
    是不是要修改这一句: while($row = mysql_fetch_array($result)){大侠们指点一下吧。
      

  9.   

    有没有ajax的解决方案呢? 
      

  10.   


    是的,混合的比较厉害,所以考虑用ajax了。谁能帮忙看看改一下???