PHP+JS三级菜单联动菜单实现方法
本文实例讲述了PHP+JS三级菜单联动菜单实现方法。分享给大家供大家参考,具体如下:
<html>
<head>
<title>
智能递归菜单-读取数据库
</title>
<style>
TD{FONT-FAMILY:"Verdana","宋体";FONT-SIZE:12px;LINE-HEIGHT:130%;
letter-spacing:1px}A:link{COLOR:#990000;FONT-FAMILY:"Verdana","宋体";
FONT-SIZE:12px;TEXT-DECORATION:none;letter-spacing:1px}A:visited
{COLOR:#990000;FONT-FAMILY:"Verdana","宋体";FONT-SIZE:12px;TEXT-DECORATION:
none;letter-spacing:1px}A:active{COLOR:#990000;FONT-FAMILY:"Verdana",
"宋体";FONT-SIZE:12px;TEXT-DECORATION:none;letter-spacing:1px}A:hover
{COLOR:#ff0000;FONT-FAMILY:"Verdana","宋体";FONT-SIZE:12px;TEXT-DECORATION:
underline;letter-spacing:1px}.Menu{COLOR:#000000;FONT-FAMILY:"Verdana",
"宋体";FONT-SIZE:12px;CURSOR:hand}
</style>
<scriptlanguage=javascript>
functionShowMenu(MenuID){
if(MenuID.style.display=="none"){
MenuID.style.display="";
}else{
MenuID.style.display="none";
}
}
</script>
</head>
<body>
<?php
//$Id:$
//基本变量设置
$GLOBALS["ID"]=1;
//用来跟踪下拉菜单的ID号$layer=1;
//用来跟踪当前菜单的级数
//连接数据库
$Con=mysql_connect("localhost","root","123456");mysql_select_db(
"menu");
//提取一级菜单
$sql="select*frommenuwhereparent_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"
<tablecellpadding='0'cellspacing='0'border='0'>";for($rows=0;$rows
<$numrows;$rows++){//将当前菜单项目的内容导入数组$menu=mysql_fetch_array($result);
//提取菜单项目的子菜单记录集$sql="select*frommenuwhereparent_id=$menu[id]";$result_sub=mysql_query($sql,$Con);
echo"<tr>";//如果该菜单项目有子菜单,则添加JavaScriptonClick语句if(mysql_num_rows($result_sub)>
0){echo"<tdwidth='20'><imgsrc='tree_expand.gif'border='0'></td>";echo"<tdclass='Menu'onClick='javascript:ShowMenu(Menu".$GLOBALS["ID"].");'>";}else{echo"<tdwidth='20'><imgsrc='tree_collapse.gif'border='0'></td>";echo"<tdclass='Menu'>";}//如果该菜单项目没有子菜单,并指定了超级连接地址,则指定为超级连接,//否则只显示菜单名称if($menu[url]!="")
echo"<ahref='$menu[url]'>$menu[name]</a>";elseecho$menu[name];echo"</td></tr>";//如果该菜单项目有子菜单,则显示子菜单if(mysql_num_rows($result_sub)>0){//指定该子菜单的ID和style,以便和onClick语句相对应
echo"<trid=Menu".$GLOBALS["ID"]++."style='display:none'>";
echo"<tdwidth='20'></td>";
echo"<td>";
//将级数加1
$layer++;
//递归调用ShowTreeMenu()函数,生成子菜单
ShowTreeMenu($Con,$result_sub,$layer);
//子菜单处理完成,返回到递归的上一层,将级数减1
$layer--;
echo"</td></tr>";
}
//继续显示下一个菜单项目
}echo"</table>";}
?>
<?php
$id=1;
functiontest(){
global$id;unset($id);
}
test();
echo"<fontclass=menu>".($id)."</font>";
//在PHP4中这里会打印出1
?>
<?php
$a=1;
$b=2;
functionSum(){
global$a,$b;$b=$a+$b;
}
Sum();
echo"<fontclass=menu>".$b."</font>";
?>
</body>
</html>
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。