❶ 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 的一個擴展類文件,可以看看怎麼使用。如圖 我就是直接顯示的:
