<html> 
<head> 
<link href="style.css" rel="stylesheet"> 
<script language="JavaScript" src="treeMenu.js"></script> 
</head> 
<body> 
<?php 
//基本变量设置 
$GLOBALS[ID]=1; //用来跟踪下拉菜单的ID号 
$layer=1; //用来跟踪当前菜单的级数 
//连接数据库 
$Con=mysql_connect("localhost","root","root"); 
mysql_select_db("tree"); 
 mysql_query("set names gb2312");
//提取一级菜单 
$sql="select * from menu where parent_id=0"; 
$result=mysql_query($sql,$Con); 
//如果一级菜单存在则开始菜单的显示 
if(mysql_num_rows($result)>0) ShowTreeMenu($Con,$result,$layer,$ID); 
//============================================= 
//显示树型菜单函数 ShowTreeMenu($con,$result,$layer) 
//$con:数据库连接 
//$result:需要显示的菜单记录集 
//layer:需要显示的菜单的级数 
//============================================= 
function ShowTreeMenu($Con,$result,$layer) 

//取得需要显示的菜单的项目数 
$numrows=mysql_num_rows($result); //开始显示菜单,每个子菜单都用一个表格来表示 
echo "<table cellpadding=’0’ cellspacing=’0’ border=’0’>"; 
for($rows=0;$rows<$numrows;$rows++) 

//将当前菜单项目的内容导入数组 
$menu=mysql_fetch_array($result); 
//提取菜单项目的子菜单记录集 
$sql="select * from menu where parent_id=$menu[id]"; 
$result_sub=mysql_query($sql,$Con); 
echo "<tr>"; 
//如果该菜单项目有子菜单,则添加JavaScript onClick语句 
if(mysql_num_rows($result_sub)>0) 

echo "<td width=’20’><img src='image/plus.gif' border='0'></td>"; 
echo "<td class=’Menu’ onClick=’javascript:ShowMenu(Menu".$GLOBALS[ID].");’>"; 

else 

echo "<td width=’20’><img src='image/minus.gif' border=’0’></td>"; 
echo "<td class=’Menu’>"; 

//如果该菜单项目没有子菜单,并指定了超级连接地址,则指定为超级连接, 
//否则只显示菜单名称 
if($menu[url]!="") 
echo "<a href=’$menu[url]’>$menu[name]</a>"; 
else 
echo $menu[name]; 
echo " 
</td> 
</tr> 
"; 
//如果该菜单项目有子菜单,则显示子菜单 
if(mysql_num_rows($result_sub)>0) 

//指定该子菜单的ID和style,以便和onClick语句相对应 
echo "<tr id=Menu".$GLOBALS[ID]++." style=’display:none’>"; 
echo "<td width=’20’> </td>"; 
echo "<td>"; 
//将级数加1 
$layer++; 
//递归调用ShowTreeMenu()函数,生成子菜单 
ShowTreeMenu($Con,$result_sub,$layer); 
//子菜单处理完成,返回到递归的上一层,将级数减1 
$layer--; 
echo "</td></tr>"; 

//继续显示下一个菜单项目 

echo "</table>"; 

?> 
</body> 
</html> 为什么在 7行、10行 、25行、28行 、40行显示错误并且错误提示是“无效字符”。希望给解答一下。

解决方案 »

  1.   

    echo "<tr id=Menu".$GLOBALS[ID]++." style=’display:none’>";  
    改为
    echo "<tr id=Menu".($GLOBALS[ID]++)." style=’display:none’>";  
      

  2.   

    $menu[id]或$GLOBALS[ID]
    这类索引名称是字符串的要修改成
    $menu['id']或$GLOBALS['ID']//第二行有错误,echo没有任何输出
    echo "<a href='$menu[url]'>$menu[name]</a>"; 
    else 
    echo $menu[name]; 
    echo "<tr id=Menu".$GLOBALS[ID]++." style='display:none'>";
    这一行也错了,需要修改成
    echo "<tr id=Menu".($GLOBALS[ID]++)." style='display:none'>";
    我粗略看了一下发现这个些问题.
      

  3.   

    看看这个能不能帮到你http://blog.csdn.net/jxncwzb/archive/2011/05/06/6399810.aspx