❶ php(菜单的制作,怎么用递归)
现在国内很多个人站长都要求无限级菜单,但其实真正商业用,2级或3级菜单足够了。无限级没有意义,而且递归太耗CPU,其实是不足取的。
不过既然问了,还是说一下无限级菜单的原理吧:
1、数据库结构:只有三个字段是必须的:
id:菜单编号
title:菜单标题
pid:上级菜单
2、生成数组:
如果只是用于菜单显示的话,数组可以根据上级分类来取:写一个getArray(pid)的函数,根据上级菜单是什么,来取得同级菜单。顶级菜单的pid是0,如果取得的数据为空,那么就是没有子菜单。
原理就这么简单。你网上看源码,还会有各种其它需求,比如一次树状列出所有菜单等等,所有源码就会显得很复杂。自己根据我说的原理写,相对还是简单的,只是做flash菜单的话,不需要递归。
最好让你老板确定菜单层数,这样写起来会容易得多。
❷ 【急】php Smarty 二维树形菜单
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>
❸ 在php后台中如何实现页面左侧常用的树状多级菜单呢如果可以的说下原理并留下一个实例吧。谢谢了!
感觉随便找个网上的后台管理系统都有代码吧?
❹ Thinkphp框架如何实现 页面左侧是树形菜单,右侧显示点击树形菜单的响应结果。
jquery,用这个吧,bootstrap有示例代码的
❺ 谁有详细php 下拉菜单代码
这是我自己用的一段代码,你自己改一下,点一下一级文本框,它所属的文本框会收起或伸展。
<SCRIPT language=javascript>
<!--
function menu_tree(meval)
{
var left_n=eval(meval);
if (left_n.style.display=="none")
{ eval(meval+".style.display='';"); }
else
{ eval(meval+".style.display='none';"); }
}
-->
</SCRIPT>
<TABLE class=navi cellSpacing=1 align=center border=0>
<TBODY>
<TR>
<TH>后台 >> 新闻分类</TH></TR></TBODY></TABLE><BR>
<table border=0 cellspacing=1 align=center class=form>
<tr>
<th colspan="2">添加分类</th>
</tr>
<form action="" method="post">
<tr>
<td colspan="2" align="center" height='30'>
<select name="fid">
<option value="0">添加大类</option>
<?php
$query=$db->findall("shipin where fid=0");
while ($row=$db->fetch_array($query)){
$new_class_arr[$row[id]]=$row[name];
echo "<option value=\"$row[id]\">$row[name]</option>";
}
?>
</select>
<input type="text" name="name" value="">
<input type="submit" name="into_class" value="添加分类"/>
</td>
</form>
</tr>
</table>
<br>
<table border=0 cellspacing=1 align=center class=form>
<tr>
<th colspan="2">系统分类</th>
</tr>
<?php
foreach ($new_class_arr as $id=>$val){
?>
<tr>
<td onClick ="javascript:menu_tree('left<?=$id ?>');" >
<form action="" method="post">
<IMG src="images/menu.gif" align=absMiddle border=0>
<input type="hidden" name="id" value="<?php echo $id?>">
<input type="text" name="name" value="<?php echo $val?>">
<input type="submit" name="update_class" value="更新"/>
<input type="button" value="删除" onclick="location.href='?del=<?php echo $id?>'"/>
</form>
</td>
</tr>
<tr id=left<?=$id ?>>
<td>
<table >
<tbody>
<?php
$query_fid=$db->findall("shipin where fid=$id");
while ($row_fid=$db->fetch_array($query_fid)){
?>
<tr>
<td>
<form action="" method="post">
<IMG src="images/menu.gif" align=absMiddle border=0>
<input type="hidden" name="id" value="<?php echo $row_fid[id]?>">
<input type="text" name="name" value="<?php echo $row_fid[name]?>">
<input type="submit" name="update_class" value="更新"/>
<input type="button" value="删除" onclick="location.href='?del=<?php echo $row_fid[id]?>'"/>
</form>
</td></tr>
<?php }?>
</tbody>
</table>
</td>
</tr>
<?php
}
?>
</table>
</BODY></HTML>
❻ PHP联动菜单
这个不是联动菜单,只是一个简单的三级树,或者说其是个二级树!要代码你可以在网络上搜索二级树js很多很多!
祝你进步!!
❼ php+mysql 做树形可折叠二级菜单怎么做超高分啊!求助!!!
在循环里面再次查询,也就是你第一个查询语句里的cid,它就是子分类的父ID
❽ php如何分页显示树状结构数据
分页了还怎么显示树状?能显示 但是很难看 ,看不出效果了,我写后台菜单管理从来不分页,phpcmsV9 也没有分页 。我推荐使用 tree.class.php phpcmsV9 的一个扩展类文件,可以看看怎么使用。如图 我就是直接显示的: