Zum Inhalt springen


My Personal Site Ver.5

2004 年 06 月 23 日

動態兩階選單

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

New!  動態 N 階選單 By Dreamweaver & PHP MySQL 終極版

在許多場合中,動態的N階選單是個很好用的功能,例如出現選擇「郵遞區號」的場合,主選項選擇縣市、副選項則會出現所對應的縣市中鄉鎮的列表,或者是主選項選擇部門,副選項則可出現所對應部門內的所有職稱、人員等。

  在這之前,一般在需要製作到相關功能時會求助到JavaScript,或者郵遞區號的選單可以找到Extension來使用,但這Extension實際上也是包裝著JavaScript,以這個方式有一個缺點就是日後管理不易、以及要修改為其他應用的時候麻煩,必須在原始程式碼的模式下按照原本的格式作修改,看著密密麻麻的原始碼還沒開始要改就已經頭昏眼花了。

  今天要介紹的方式只讓各位自己修改原始程式碼「輸入11個英文字母」,其他的都是利用Dreamweaver MX 2004的內建功能組合起來,配合得則是PHP+MySQL,如果使用其他資料庫+其他語言來達成的話,則是大同小異的,這是第一次以「影像檔案」來做教學檔(你們聽不到我的聲音就是了),若有問題的話可以至討論區一個專屬的主題內討論。

首先在這先對資料庫介紹一下,這樣子應該有助於各位在接著下來看影片說故事。

基本上這個教學的資料庫是建立在一個資料庫(test)內含兩個資料表(main、sub)的基礎上。

main資料表:

欄位
型態
屬性
Null
預設值
附加
tinyint(4)     auto_increment
tinytext      
ID
COLOR
1
黃色
2
紅色
3
綠色

sub資料表:

欄位
型態
屬性
Null
預設值
附加
tinyint(4)     auto_increment
smallint(6)   0  
tinytext      
ID
CLASS
SUB
1
1
香蕉
2
1
木瓜
3
1
香瓜
4
2
蕃茄
5
2
火龍果
6
3
芭樂
7
3
西瓜

這樣子大家應該很清楚了,main資料表的ID欄位,每一個ID各代表著一個顏色,而與mian.ID相對應的就是sub資料表的CLASS欄位,所以sub資料表中第一筆到第三筆資料中SUB欄位記錄的都是同樣外皮是「黃色」的水果(香瓜好像有點不像….)

總而言之就是要製作一個像這樣的選單#Sample Link,瞭解之後呢,就來看看影片檔案吧。

教學名稱:製作「動態二階選單」
影片長度:三分零九秒
影片大小:1689K
影片尺寸:640×480

#影片Link
#專屬討論主題Link

( 用影片檔就是想少打點字,想不到還是得打這麼多><” )


影片中提到修改< option value=”menu.php?ID=< ? php echo $row_rsmain['ID'] ? >”部分
送進資料庫後值也是照單全收
因此跳頁部分要從內定產生之JavaScript著手
<script language=”JavaScript” type=”text/JavaScript”>
<!–
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+”.location=’”+’網頁.php?URL參數ID=‘+selObj.options[selObj.selectedIndex].value+”‘”);
if (restore) selObj.selectedIndex=0;
}
//–>
</script>

« 解析伺服器行為-使用者驗證 – 加強使用者認證行為 - 使用md5編碼 »

作者:
Cttlee
日期:
19:23:05
分類:
Dreamweaver
被檢視了:
3,188 次
Tags:
 
Trackback:
Trackback URI

19 則回應

  • At 2005.09.07 11:28, sunny said:

    請問一下,如果我只要用一個資料表!來完成”動態兩階選單\”,有可能做得到嗎?
    謝謝:?::?::?:

    • At 2005.09.07 16:55, Cttlee said:

      可以啊…你可以加一個欄位辨別是主還副
      建立兩個資料集以這個為依據篩選
      不過這個SQL可能要手動自己加了

      • At 2005.09.07 17:57, sunny said:

        sql要自己加,您是指sql的語法嗎?還是?
        您指的主、副是指主所引及副所引嗎?
        :?::?::?:

        • At 2005.09.07 18:00, sunny said:

          如果說要建立三階以上的動態選單,是不是也依照相同的作法呢?因為我有試過三階,再選第二階的時候第一階的資料重新顯示,第二階的資料不見了,感覺好像是又回到網頁第一次run的情形!不知要怎解決呢?
          謝謝大大回應:neutral::neutral::neutral::lol::lol:

          • At 2005.09.07 18:03, Cttlee said:

            篩選資料集的部分
            內建的圖形篩選介面只能篩一項
            這樣看起來至少要多篩一項
            如果你有書的話可以參考7-4小節的內容

            • At 2005.09.07 18:06, Cttlee said:

              要依樣畫葫蘆就是了
              送出的URL變數也要增加…
              讓選單能夠記錄選項…

              • At 2005.09.07 18:18, sunny said:

                嗯!大蓋了解您的意思!因本人是php的肉腳!才學不到一個月,drwemweave、mysql也都學不到一個月!如果大大有好的建意,可否提供一下,要重哪一本書學比較容易!謝謝

                • At 2005.09.07 18:22, sunny said:

                  對了!請問一下是否有dreamweaver的書內容講解的比較詳細的!內部的功能也解得比較多的例如屬性、行為…之類的書!麻煩大大提供一下!謝謝,就依您是過來人的經驗告知小弟吧!:razz::razz::razz:

                  • At 2005.09.07 19:56, Cttlee said:

                    你你你你…太沒禮貌了..:wink: 你沒看到左邊sidebar的

                    實際如何你還是去書店翻翻吧 一本書不可能適合每一個人
                    抬面上也就是哪幾本書而已

                    • At 2005.11.23 16:15, 不水 said:

                      您的教學影片我無法連結耶,請問還在嗎?
                      若不在了可否直接寄信給我,謝謝您…….
                      我找這個問題很久了………….急需解決方法……:cry::cry:

                      • At 2005.11.23 17:14, Cttlee said:

                        檔案存在沒問題啊

                        • At 2005.12.13 12:54, William said:

                          大大救命!! 我依照您教學的方式也加入了JAVA程式片段(我完全不懂JAVA)
                          可是我將動態選單(2階)傳回資料庫後第一階的東西不是我要的
                          以您的教學範例舉例 我的第一階寫入資料庫的值竟然是我的網頁名稱 不是寫入紅色或黃色 不知小弟哪裡出錯 請大大幫幫忙 感激不盡!!

                          • At 2005.12.13 13:54, Cttlee said:

                            JavaScript是修改原本就產生的
                            而不是新加上

                            < option value="menu.php?ID=< ? php echo $row_rsmain['ID'] ? >“
                            這邊就不要改了
                            在DW在跳頁選單中設對的 值 就是了

                            如果第一階要存入文字
                            Sub資料表可能要用顏色來分類而不是用CLASS來分類
                            (1=>黃、2=>紅、3=>綠)

                            function MM_jumpMenu(targ,selObj,restore){ //v3.0
                            eval(targ+”.location=’”+’main.php?Color=‘+selObj.options[selObj.selectedIndex].value+”’”);

                            相關的地方需要變通一下…

                            • At 2005.12.13 14:36, William said:

                              大大您好 我改好了
                              可是第一階寫入資料庫的值是ID(數字) 我想要讓她寫入的是COLOR(紅色,黃色,綠色)值 請問要從哪裡下手阿…拜託了!!

                              • At 2005.12.13 15:15, Cttlee said:

                                如果第一階要存入文字
                                Sub資料表可能要用顏色來分類而不是用CLASS來分類
                                (1=>黃、2=>紅、3=>綠)

                                function MM_jumpMenu(targ,selObj,restore){ //v3.0
                                eval(targ+”.location=’”+’main.php?Color=‘+selObj.options[selObj.selectedIndex].value+”’”);

                                相關的地方需要變通一下…

                                • At 2005.12.13 15:15, William said:

                                  大大~~不行 (在網址列會呈現***網頁.php?coloc=紅色)他會傳回網頁錯誤 是不是篩選不支援中文阿 還是啥咪狀況 我有把CLASS的數字全改成中文的對應顏色

                                  • At 2005.12.13 16:03, Cttlee said:

                                    網際網路選項 進階 □永遠將URL傳遞成UTF8

                                    用中文很容易出現問題
                                    找其他方法變通吧

                                    • At 2009.05.28 00:28, ironman said:

                                      這樣會有麻煩喔
                                      如果網頁有其他文字欄位有資料
                                      選了下拉選單後,資料就無法保留了

                                    (Required)
                                    (Required, will not be published)