http://www.meizz.com/Web/Web.asp
这个页的底部有段梅花雪树的示例代码,为了让数据填充,我修改如下:<script language="JavaScript">
var tree;
function ShowTree(x,y,z,id)
{
  tree = new MzTreeView("tree");
  tree.setIconPath("jsimg/");
  tree.nodes[""+x+"_"+y+""] = "text:"+z+"; data:id="+id+"";
  tree.setURL("page_right.php");
  tree.setTarget("CNTFRAME");
  document.write(tree.toString()); //&Ograve;à&iquest;&Eacute;&Oacute;&Atilde; obj.innerHTML = tree.toString();
}
ShowTree(0,5,"tree","0");
</script>
然后从数据库中读数据(PHP代码),对查询出的所有记录进行一次遍历,在遍历中这样写:
   $n=strlen($arr[0]);   //取出来的ID
   if ($n==2)   //取出来的ID长度如果为2,一级目录,设node.id为5
   {
       $a=5;
   }
   else if ($n==4)   //取出来的ID长度如果为4,二级
   {
       $a=substr($arr[0],0,2);//取出来的ID长度如果为6,三级
   }
   else if ($n==6)
   {
       $a=substr($arr[0],0,4);
   }
   ?>
    <script language="JavaScript">ShowTree(<?echo $a?>,<?echo $arr[0]?>,"<?echo $arr[1]?>",<?echo $arr[0]?>)</script>
   <?现在的问题是二级目录显示不出来,三级当然也不能显示了,ShowTree()这个函数被传递的参数千真万确都是正确的,循环的过程也是正确的,每循环一次,ShowTree()函数都会被赋予下面的值:
ShowTree(0,5,"tree","0");
ShowTree(5,10,"tree","0");
ShowTree(5,20,"tree","0");
......
ShowTree(10,1010,"tree","0");
......但是输出到页面上就只有根节点了,请问是怎么回事?

解决方案 »

  1.   

    而且还提示错误:'isExpand'为空或不是对象
      

  2.   

    closetome(即鹿无虞,惟入于林中。君子几,不如舍。往吝。) :-----------------------------------------------------------------程序环境:Apache,php,oracle,win2003
      

  3.   

    你在每次循环里面加alter(),把值打出来,一看就清楚了
      

  4.   

    一步一步执行,看看在哪一句出现的'isExpand'为空或不是对象
      

  5.   

    honkerhero(孤独的流浪) :所有的循环出现的值都是正确的,毫无问题leixueqiyi() :就是在执行<script language="JavaScript">ShowTree(<?echo $a?>,<?echo $arr[0]?>,"<?echo $arr[1]?>",<?echo $arr[0]?>)</script>这个函数时出现的的'isExpand'为空或不是对象
      

  6.   

    Momoass(小泉涌出琼珠液,巨树顶向艳阳天) :不好意思,PHP那边人气太淡,只要拿到这边来,我也是刚接触PHP,以前一直在这个版块再说我觉得这个问题和语言没有关系,我这里的PHP代码也只是读读数据库,主要是逻辑上有问题
      

  7.   

    咱们把问题简化一下吧,抛开语言,只说JS这部份
    现在下面的代码可以输出树的二级目录:
    <script language="JavaScript">
      var tree = new MzTreeView("tree");
      tree.setIconPath("jsimg/");
    function ShowTree()
    {
     tree.nodes["0_55"] = "text:111";
      tree.nodes["55_1001"] = "text:111; data:id=100";
      tree.setURL("default.htm");
      tree.setTarget("MzMain");
      document.write(tree.toString()); 
      }
      ShowTree();
    </script>下面的就不能输出二级的,只能输出一级的:
    <script language="JavaScript">
    var tree;
    function ShowTree(x,y,z,id)
    {
      tree = new MzTreeView("tree");
      tree.setIconPath("jsimg/");
      tree.nodes[""+x+"_"+y+""] = "text:"+z+"; data:id="+id+"";
      tree.setURL("page_right.php");
      tree.setTarget("CNTFRAME");
      document.write(tree.toString()); //&Ograve;à&iquest;&Eacute;&Oacute;&Atilde; obj.innerHTML = tree.toString();
    }
    ShowTree(0,55,"tree","0");
    ShowTree(55,1001,"tree","0");
    </script>现在问题简单吧?和PHP或.net一点关系都没有了
      

  8.   

    一年多没写php 忘光了......