1. 程式人生 > >csdn的樹型結構php+mysql的實現方式(一)

csdn的樹型結構php+mysql的實現方式(一)

為了解決瀏覽器載入大型樹型速度慢的問題,csdn用了web2.0的非同步通訊技術,點選該節點展開時候讀取該節點下的位元組點:)
在網上找了半天,找到[阿信]————死了都要愛 (此信非彼信,哈哈)破解的東東是個asp+access的,於是想辦法把這個改造成了php版本的和大家共享一下哈哈。
包裡面有這麼幾個檔案。
1.deeptree.htm或者deeptree.asp是顯示資料的頁面。deeptree.asp是根據許可權的不同來顯示不同的選單的例子,若不涉及許可權,可用deeptree.htm。
2.deeptree.css和deeptree.htc這兩個檔案放在同一目錄下,是對選單的樣式定義和事件的定義.
3.server.asp這是後臺的service,這裡都在同一目錄,若需要更改目錄,需要更改deeptree.htc中的Config.Service系統引數.
4.deeptree.xsl是對返回的XML資料的解釋用的,路徑也在deeptree.htc中定義,建議同一目錄下.
5.影象檔案:image/collapsed.gif,image/expanded.gif,image/file.gif
6.tree.mdb是樹選單的資料庫檔案。表結構中的level是為許可權而設定的.
我用到的
1.deeptree.htm和deeptree.css和deeptree.xsl和影象檔案:image/collapsed.gif,image/expanded.gif,image/file.gif
 /這些不用改除非你要改字型顏色樣式
2.資料庫tree.mdb檔案不用,但是要知道試用這種樹型控制元件的表結構id,level,父id 有三個欄位,這個不用我說了吧都是搞程式的一看就明白啥意思
現在就是要把server.asp轉成php並試用於自己的資料庫及結構
3.看完了asp檔案,其原理,就是回傳一個xml流,是下面格式
 <?xml version="1.0" encoding="gb2312" ?>
<xml>
<TreeNode id="1">
  <NodeText>簡報</NodeText>
  <title></title>
  <NodeUrl>link</NodeUrl>
  <child>2</child>
  <target></target >
  </TreeNode>
<TreeNode id="2">
  <NodeText>之窗</NodeText>
  <title></title>
  <NodeUrl>link</NodeUrl>
  <child>2</child>
  <target></target>
  </TreeNode>
  </xml>
說明:
<TreeNode id="12"> id是當前節點的 id
<NodeText>研究</NodeText> 樹上顯示的文字
<NodeUrl>link</NodeUrl> 檔案的url連線
<title></title> 還沒研究
<child>2</child> 該節點有幾個子節點的
<target></target> 也沒研究
下面我們的工作就是用php訪問資料庫生成下面格式的xml流
未完代序...(htc檔案的修改,及sql語句的寫法)