php樹狀菜單,axure樹狀菜單

本文目錄一覽:

用php調資料庫做樹狀顯示

資料庫設計的時候,通常的做法是用父ID來解決樹狀結構,也有二叉樹等等

id  pid category_name

然後,用遞歸就能實現,也有引用數組的方式

?php

/**

 * 此方法由@Tonton 提供

 * 

 * @date 2012-12-12 

 */

function genTree5($items) { 

    foreach ($items as $item) 

        $items[$item[‘pid’]][‘son’][$item[‘id’]] = $items[$item[‘id’]]; 

    return isset($items[0][‘son’]) ? $items[0][‘son’] : array(); 

/**

 * 將數據格式化成樹形結構

 * @author Xuefen.Tong

 * @param array $items

 * @return array 

 */

function genTree9($items) {

    $tree = array(); //格式化好的樹

    foreach ($items as $item)

        if (isset($items[$item[‘pid’]]))

            $items[$item[‘pid’]][‘son’][] = $items[$item[‘id’]];

        else

            $tree[] = $items[$item[‘id’]];

    return $tree;

}

$items = array(

    1 = array(‘id’ = 1, ‘pid’ = 0, ‘name’ = ‘江西省’),

    2 = array(‘id’ = 2, ‘pid’ = 0, ‘name’ = ‘黑龍江省’),

    3 = array(‘id’ = 3, ‘pid’ = 1, ‘name’ = ‘南昌市’),

    4 = array(‘id’ = 4, ‘pid’ = 2, ‘name’ = ‘哈爾濱市’),

    5 = array(‘id’ = 5, ‘pid’ = 2, ‘name’ = ‘雞西市’),

    6 = array(‘id’ = 6, ‘pid’ = 4, ‘name’ = ‘香坊區’),

    7 = array(‘id’ = 7, ‘pid’ = 4, ‘name’ = ‘南崗區’),

    8 = array(‘id’ = 8, ‘pid’ = 6, ‘name’ = ‘和興路’),

    9 = array(‘id’ = 9, ‘pid’ = 7, ‘name’ = ‘西大直街’),

    10 = array(‘id’ = 10, ‘pid’ = 8, ‘name’ = ‘東北林業大學’),

    11 = array(‘id’ = 11, ‘pid’ = 9, ‘name’ = ‘哈爾濱工業大學’),

    12 = array(‘id’ = 12, ‘pid’ = 8, ‘name’ = ‘哈爾濱師範大學’),

    13 = array(‘id’ = 13, ‘pid’ = 1, ‘name’ = ‘贛州市’),

    14 = array(‘id’ = 14, ‘pid’ = 13, ‘name’ = ‘贛縣’),

    15 = array(‘id’ = 15, ‘pid’ = 13, ‘name’ = ‘于都縣’),

    16 = array(‘id’ = 16, ‘pid’ = 14, ‘name’ = ‘茅店鎮’),

    17 = array(‘id’ = 17, ‘pid’ = 14, ‘name’ = ‘大田鄉’),

    18 = array(‘id’ = 18, ‘pid’ = 16, ‘name’ = ‘義源村’),

    19 = array(‘id’ = 19, ‘pid’ = 16, ‘name’ = ‘上壩村’),

);

echo “pre”;

print_r(genTree5($items));

print_r(genTree9($items));

?

誰有詳細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/TABLEBR

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遞歸樹形菜單

可以參考以下代碼,但需要把你自己的資料庫鏈接,表等改一下就可以了

html

head

link href=’style.css’ rel=stylesheet

meta http-equiv=”Content-Type” content=”text/html; charset=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如何分頁顯示樹狀結構數據?

分頁了還怎麼顯示樹狀?能顯示 但是很難看 ,看不出效果了,我寫後台菜單管理從來不分頁,phpcmsV9  也沒有分頁 。我推薦使用   tree.class.php  phpcmsV9 的一個擴展類文件,可以看看怎麼使用。如圖  我就是直接顯示的:

在php後台中如何實現頁面左側常用的樹狀多級菜單呢?如果可以的說下原理並留下一個實例吧。謝謝了!

//’name’=’標題’,’main_page’=’左導航’,’r_nav’=’默認主頁’

$group_type_arr=array(

2=array(‘name’=’企業管理’,’main_page’=’admin_enterprise’,’r_nav’=’admin_enterprise_open’),

4=array(‘name’=’個人用戶管理’,’main_page’=’user_ctrl’,’r_nav’=’admin_user_dat’),

5=array(‘name’=’點評管理’,’main_page’=’comment_ctrl’,’r_nav’=’comment’),

7=array(‘name’=’統計管理’,’main_page’=’stats_ctrl’,’r_nav’=’admin_product_business_count’),

8=array(‘name’=’群組管理’,’main_page’=’group_ctrl’,’r_nav’=’useradmin’),

);

這是左側第一級菜單,循環這個,在它裡面可以直接加入二級菜單

原創文章,作者:HXYH,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/141636.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
HXYH的頭像HXYH
上一篇 2024-10-08 17:53
下一篇 2024-10-08 17:53

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • Python繪製樹狀圖

    本文將從多個方面詳細闡述Python如何繪製樹狀圖。樹狀圖展示了一個層級結構,常用於表示組織結構、家譜、關係圖等。Python作為一種高級編程語言,具有豐富的可視化庫,有許多方法可…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • PHP版本管理工具phpenv詳解

    在PHP項目開發過程中,我們可能需要用到不同版本的PHP環境來試驗不同的功能或避免不同版本的兼容性問題。或者我們需要在同一台伺服器上同時運行多個不同版本的PHP語言。但是每次手動安…

    編程 2025-04-24
  • Axure導出HTML

    一、導出HTML的方法 Axure RP是一款流行的低保真原型設計工具,使用它可以快速製作交互原型,同時也支持將原型導出為HTML文件。導出HTML文件的方法如下: 1、在Axur…

    編程 2025-04-24
  • 小程序下拉菜單詳解

    一、下拉菜單的基本用法 小程序下拉菜單是一個常用的交互組件,用於在需要選取內容的時候,展示選項並讓用戶進行選擇。下面是下拉菜單的基本用法示例代碼: <view class=”…

    編程 2025-04-24

發表回復

登錄後才能評論