當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

本文教你做樹型菜單(一)

本文教你做樹型菜單(一)

更新時間:2021-01-08 文章作者:未知 信息來源:網絡 閱讀次數:

跟我學做樹型菜單 (一)
關鍵字:ASP|樹型菜單|遞歸
寫在前面
在網頁中,為了方便組織內容,經常用到的要數菜單了,用一個樹型的菜
單(效果參看http://www.he-xi.com/tree),可以非常方
便地對復雜的內容進行組織。比如商品的分類;下載文件的分類;網站導航等
等。這里要解決的就是這樣一個問題。我們將會用數據庫來存儲樹型菜單的結
構,并用ASP程序來輸入。

(一)功能設計
樹型菜單在功能設計上沒有太多的要求。只有對記錄的增、刪、改。還有
就是最基本的,也是最重要的顯示功能。顯示功能要把記錄顯示出來,并且要
把顯示的內容組織成客戶端的動態網頁。還可以加入移動的功能,實現的時候
可能有點復雜,在這里我沒有具體寫出來,有興趣的朋友可以自己寫。還可以
擴展管理員登錄功能,只有管理員登錄后才能進行管理,沒有登錄的話只顯示
菜單。其它的功能有待更新,這里就不一一列出了。具體的功能設計如下:
1、顯示菜單:最基本也是最重要的功能。顯示菜單,并組織成客戶端的動態網頁。
2、增加記錄:增加一個記錄,作為所選擇的記錄的子菜單。
3、刪除記錄:刪除所選擇的記錄。
4、修改記錄:修改所選擇的記錄?尚薷牡膶傩杂校好Q,鏈接。
5、*移動記錄:把所選擇的記錄移動到指定的記錄下,成為它的子菜單。
6、*管理員登錄:只有登錄后才能管理。
7、存儲的內容:每個記錄中存儲菜單的名字和菜單的鏈接。

注:加*號的在本文中沒有實現。

(二)數據庫設計
數據庫使用ACCESS 2000數據庫。數據庫文件為tree.mdb 如果要求安全,可以
改名為tree.asp 不過記得在ASP程序中也要做相應的修改。數據庫結構如下:
表名:treemenu
字段名 字段類型 說明
id 自動編號/有索引無重復/遞增 每個記錄的編號
par_id 長整型/有索引有重復 父結點的ID號/為0表示根
chi_id 長整型/有索引有重復 子結點的個數
Txt 文本/長度50 菜單的名稱/50太少的話自己改
Link 文本/長度50 鏈接/50太少的話自己改

新建好數據表后先輸入一個記錄,par_id和chi_id都為0 其它任意

(三)文件設計
在這里僅作為演示,并沒有加入太多功能。所以只有一個文件。取名為index.asp 便
于放在文件夾做為默認文檔。在這里將會用到一些圖像,用于表示菜單的狀態,可以打開資源
瀏覽器,展開一些文件夾,然后抓圖下來進行編輯一下。要注意,得到的圖像最好大小相同。
我們文中使用的是16X16的圖像?梢缘竭@里直接下載:
http://www.he-xi.com/tree/images.zip


(四)相關函數
基本上要用到的函數都和《跟我學做留言本》一文的相同。主要是用于操作數據庫的。在
這里也再次列出來:
共用函數文件,文件名:operation$db.asp
<%
'*******************************************************************
'通用數據庫ASP函數
'*******************************************************************
'數據庫常數
databasename="tree.mdb" '數據庫名,如果改名的話,在這里修改就行了
'*******************************************************************
'打開數據庫
sub opendb(connect)
set connect=server.CreateObject("ADODB.connection")
connect.ConnectionString="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &_
server.MapPath(databasename)
connect.Open strconn
end sub
'*******************************************************************
'關閉數據庫
sub closedb(connect)
connect.close
set connect=nothing
end sub
'*******************************************************************
'打開單個表讀
sub opentable(connect,tbname,myrs)
set myrs=server.createobject("ADODB.recordset")
rssql="select * from " & tbname
myrs.open rssql,connect,1,1
end sub
'*******************************************************************
'關閉臨時表
sub closetable(rs)
rs.close
set rs=nothing
end sub
'*******************************************************************
'查詢數據庫
sub searchtable(connect,sql,rs)
set rs=server.createobject("ADODB.recordset")
rs.open sql,connect,1,1
end sub

'*******************************************************************
'查詢并更改數據庫
sub changetable(connect,sql,rs)
set rs=server.createobject("ADODB.recordset")
rs.open sql,connect,1,3
end sub

'*******************************************************************
'顯示信息 用于調試
Sub w(msg)
response.write msg
end sub

'*******************************************************************
'程序中斷 用于調試
sub userstop()
response.end
end sub
%>

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
亚洲嫩草影院久久精品