PHP递归树形菜单

PHP递归树形菜单,第1张

可以参考以下代码,但需要把你自己的数据库链接,表等改一下就可以了

<html>

<head>

<link href='style.css' rel=stylesheet>

<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />

<script language="JavaScript" src="TreeMenu.js"></script>

</head>

<body>

<?php

//基本变量设置

$GLOBALS["ID"] =1//用来跟踪下拉菜单的ID号

$layer=1//用来跟踪当前菜单的级数

//连接数据库

$Con=mysql_connect("localhost","root","1234")

mysql_select_db("wiki")

//提取一级菜单

$sql="SELECT * FROM wiki where pid=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 wiki where pid=$menu[cid]"

$result_sub=mysql_query($sql,$Con)

echo "<tr>"

//如果该菜单项目有子菜单,则添加JavaScript onClick语句

if(mysql_num_rows($result_sub)>0)

{

echo "<td width='20'><img src='folder.gif' border='0'>樱模</td>"

echo "<td class='Menu' onClick='javascript:ShowMenu(Menu".$GLOBALS["ID"].")'>"

}

else

{

echo "<td width='20'><img src='file.gif' border='0'></td>"

echo "<td class='Menu'>"

}

//如果该菜单项目没有子菜单,并指定了超级连接地址,则指定为超级连接,

//否则只显示菜单名称

//if($menu[url]!="")

//echo "<a href='$menu[cid]'>$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>

php文件

<?php

$tpl

=

New

Smarty()

$Class

=

array(array("bigid"

=>

"1","bigname"

=>

"粮油2","Small"

=>

array(array("ID"

=>

"1","Name"=>"稻谷"),array("激旦ID"

=>

"2","Name"=>"麦类"),array("ID"

=>

"3","Name"=>"玉米"),array("ID"

=>

"4","Name"=>"花生"),array("ID"

=>

"5","Name"=>"豆类"))),array("bigid"

=>

"2","bigname"

=>

"蔬菜及制成品","Small"

=>

array(array("ID"

=>

"1","Name"=>"竹笋类"),array("ID"

=>

"2","Name"=>"花菜类"),array("ID"

=>

"3","Name"=>"芥菜类"),array("ID"

=>

"4","Name"=>"甘蓝类"),array("ID"

=>碧铅尘悔禅

"5","Name"=>"绿叶绿叶绿叶类"),array("ID"

=>

"6","Name"=>"绿叶绿叶绿叶类"),array("ID"

=>

"7","Name"=>"绿叶类"))),array("bigid"

=>

"3","bigname"

=>

"蔬菜及制成品","Small"

=>

array(array("ID"

=>

"1","Name"=>"竹笋类"),array("ID"

=>

"2","Name"=>"花菜类"),array("ID"

=>

"3","Name"=>"芥菜类"),array("ID"

=>

"4","Name"=>"甘蓝类"),array("ID"

=>

"5","Name"=>"绿叶绿叶绿叶类"),array("ID"

=>

"6","Name"=>"绿叶绿叶绿叶类"),array("ID"

=>

"7","Name"=>"绿叶类"))))

$tpl->

assign("Class",$Class)

?>

tpl文件

<ul

id="cla_cen">

<li>

{*产品分类*}

{section

name=big

loop=$Class}

<h4><a

href="#Big{$Class[big].bigid}">{$Class[big].bigname}</a></h4>

{section

name=small

loop=$Class[big].Small}

<a

href="#Small{$Class[big].Small[small].ID}">{$Class[big].Small[small].Name}</a>

|

{/section}

<br>

{/section}

</li>

</ul>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12548236.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存