首頁 >php教程 >PHP开发 >使用'函數遞歸'實作基於php和MySQL的動態樹型選單

使用'函數遞歸'實作基於php和MySQL的動態樹型選單

黄舟
黄舟原創
2016-12-14 16:14:161254瀏覽

樹型選單在許多桌面應用系統中都有非常廣泛的應用,其主要優點是結構清晰,利於使用者非常清楚的知道目前自己所在的位置。但在web上樹型選單的應用因為沒有理想的現成元件可以拿過來直接使用,所以一般的情況下,程式設計師主要是透過JavaScript來實作一些簡單的樹型結構選單,但這些選單往往都是事先定好各菜單項目,以及各菜單項目之間的層次關係,不利於擴充,一旦需要另一個菜單結構時,往往還需要重新編寫,因此使用起來不是很方便。
經過函數遞歸的研究,我發現這種樹型選單可以透過遞歸函數,使樹型選單的顯示實現動態變化,並沒有級數的限制。以下是我用php,MySQL,JavaScript寫的一個動態樹型選單的處理程式碼,如果大家有興趣的話,就和我一起來看看我是如何實現的吧:) 
首先,我們需要一個資料庫,在在這個資料庫中,我們建立以下一張表: 
CREATE TABLE menu ( 
id tinyint(4) NOT NULL auto_increment, 
parent_id tinyint(4) DEFAULT '0' NOT NULL, 
varname char 60), 
PRIMARY KEY (id) 
); 
這張表中 
id 為索引 
parent_id 用來保存上一層選單的id號,如果是一級選單則為0 
name 為選單的名稱,也就是要要為菜單的名稱,也就是要為0 
name 為選單的名稱,也就是要想要頁面上顯示的選單內容 
url 如果某選單是末級選單,則需要指定該連接的url位址,這個欄位就是用來儲存此位址的,其他非末級選單,該欄位為空 
好了,資料庫有了,你就可以添加一些記錄了,下面是我做測試的時候,使用的一些記錄: 
INSERT INTO menu VALUES ( '1', '0', '人事管理', ''); 
INSERT INTO menu VALUES ( '2', '0', '通訊交流', ''); 
INSERT INTO menu VALUES ( '3', '1', '檔案管理', ''); 
INSERT INTO menu VALUES ( '4', '1', '考勤管理', 'http://localhost/personal/attendance.php'); 
INSERT INTO menu VALUES ( '5', '2', '通訊錄', '') ; 
INSERT INTO menu VALUES ( '6', '2', '網路會議', ''); 
INSERT INTO menu VALUES ( '7', '3', '新增檔案', 'http://localhost /personal/add_achive.php'); 
INSERT INTO menu VALUES ( '8', '3', '查詢檔案', 'http://localhost/personal/search_archive.php'); 
INSERT INTO menu VALUES ( ' 9', '3', '刪除檔案', 'http://localhost/personal/delete_archive.php'); 
INSERT INTO menu VALUES ( '10', '5', '新增通訊記錄',' http://localhost/communication/add_address.php');

 更多相關文章請關注PHP中文網(www.php.cn)!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn