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

還有問題?

到目前為止看起來整個 N 階層選單已經運作無誤了,不過其實是有一點問題的,我們來套用一下【插入記錄】試試,預計要讓使用者在按下「送出」按鈕後可以將姓名以及所選擇地區的郵遞區號能夠記錄到資料庫中。

25.PNG

接著嘗試選擇第一階選單。

26.PNG

結果畫面出現錯誤訊息了,很明顯是因為整個程式跑去做【插入記錄】的部分,因為在選擇第一階選單的時候頁面就將表單 form1 裡的資訊全部以 POST 送給自己。

27.PNG

但在 Dreamweaver 中對插入、更新、刪除等伺服器行為的處理方式只是去檢查收到的 POST 資訊是否有內定會新增的隱藏欄位 MM_insert(更新紀錄為MM_update),若有的話就會做指定的動作。

28.PNG

實際上在套用伺服器行為後Dreamweaver就會將該作用的表單『動作』目標指向自己,並且想辦法包含所有已經帶上的URL參數(上圖34-37列)。

29.PNG

所以就想辦法處理一下吧,這裡的方式就是去變更這個 Dreamweaver 表單『動作』目標會指向目的,使它會帶上一個我們自訂的 URL參數(35-40),然後在要做指定伺服器行為動作前所要檢查的部分多去檢查這個 URL變數 是否存在(42),如果該 URL變數 存在就表示這個 POST 的動作是按鈕所觸發的,否則單純選擇選單時是不會有的。

30.PNG

這樣就完成了,你可以點選這裡觀看完成的範例。

在〈動態 N 階選單 By Dreamweaver & PHP MySQL 終極版〉中有 48 則留言

  1. 大大你好
    想要請教你有辦法用mssql寫嗎?…
    我有試著改過你的碼
    但有些語法好像不能><
    我是使用php跟mssql連

    我試了好久
    都不能用><….
    可以幫助我一下嗎?謝謝!

  2. 您好!
    請教一下~因為我下載的是DWCS4破解版~但擴充元件卻無法安裝~必須要MX才能使用ㄟ~~是因為我的是破解版的關係嗎

  3. 老師您好!
    我照著步驟做~終於完成了!但我出現了問題
    1.第一階選項不會停留在我所選擇的項目,但第二階會依照我第一階選項所點選的出現該有的選項.例如:第一階順序為NISSAN.FORD.MAZDA.TOYOTA…無論我怎麼選~第一皆都會跳回NISSAN.但我點選NISSAN的話第二階卻不會出現該廠牌的車款
    麻煩老師幫我解答

  4. 老師您好!想像您請教您幾個問題~因為我要做的是車輛的選單~1.依下拉式條件選單後再另一個視窗開啟顯示我所選的條件資料2.例如我一次有好幾台同款車輛,我的資料庫該怎麼編輯?如果照以上的做法做是否會出現選擇一個廠牌選單上卻顯示多個同款車型?

  5. 老師您好:
    拜讀您的大作「精通 Dreamweaver CS4 與 PHP & MySQL 實例整合應用經典」,真的獲益良多,尤其是第一個範例﹣訊息發佈系統,解決了我很多問題。這個多階選單也是很實用的功能,我依照您的教程,也成功完成了。
    不過最近遇到一個問題,想請教您一下。就是在設計一個人事(會員)管理的時候,估計有(新增、修改、刪除)三個表單,在(新增)時,需要輸入的資料有姓名、生日、興趣、地址…等等,而地址就是使用多階選單構成。在(修改)時,載入了URL參數,篩選出選定的會員資料,但是這個時候若想修改地址時,選單按完,所有載入的資料(姓名、生日、興趣、地址…)都變空白了,我知道是表單POST給自己而造成的,但一直想不出方法。請問要如何才能在(修改)表單保留已載入的資料呢?謝謝您!

  6. 老師你好:
    我找老師的步驟完成了”一組”動態選單,可是當網頁中有”第兩組”動態選單的時候,第二個選單卻會被第一個選單影響,應該怎麼設定呢??

    PS.(1)第一組選單跟第二組選單沒有關係~
    (2)老師網頁裡面的教學,書裡面都有嗎??

  7. 你好 這個範例讓我學了很多
    我有一個問題: 我可以做單一個多階動態選單 OR 單一個靜態選單+文字欄位 的多條件搜尋
    但是動態選單+文字欄位的建搜尋卻沒有辦法 因為在動態選單的表單必需用POST才能做出 但是搜尋條件的表單卻要用 GET才可以
    請問要怎麼解決這個問題? 謝謝

  8. 關於第十章認證,Auth=1時,如未至信箱點選認證仍可登入,
    雖有看過相關文章,但 (1.)資料集的篩選器是設為”Account=表單變數username”嗎? (2.)拖曳該欄位值至登入後導向成功頁面前?應該是指login.php?
    到底是拖曳到實際程式碼那裏?
    ~這二個問題始終無法解決,可否請作者或各位高手解惑..

    以下是我依書本做的(CH 10 – login.php)

    <?php
    if (!function_exists(“GetSQLValueString”)) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = “”, $theNotDefinedValue = “”)
    {
    if (PHP_VERSION

  9. 我可能問錯問題 在搜尋功能上 要在哪邊加入變數 去判斷是按下按鈕才送出表單呢??

    因為搜尋並不是伺服器功能

    我自己試著去改 都無法正確做出功能 請老師指教 謝謝

  10. 設計沒有不允許登入
    你可以試著在設置【登入使用者】伺服器行為時,將『層級來源』的欄位更改為Auth,然後看是要搭配【限制存取頁面】或是利用$_SESSION[‘MM_UserGroup’] 來處理

  11. 老師 搜尋的條件 和顯示頁面我是寫在同一個頁面

    我看不出哪邊的程式碼是單單送給表單 還是在網頁上+上變數作搜尋

    是$currentPage = $_SERVER[“PHP_SELF”];有關的程式碼嗎?

    請老師提示謝謝!

  12. 主要是我搜尋的條件和下拉式選單包在同一個form
    當form是post的時候二階下拉選單可以單獨運作 但是搜尋功能就不能用了
    當form是get的時候 第一階下拉選單一選就會直接搜尋 不能讓使用者輸入其他的搜尋條件
    我試著用form包form 或者其他方法 例如老師敎的+變數讓他暫緩送出表單
    可是都失敗 困擾我很久~請老師指點迷津

  13. 如果有伺服器行為 也就有$editFormAction

    就可用老師方法 在伺服器行為之前加入自定變數判斷

    但搜尋沒有 只有$currentPage 加變數暫緩送出表單的地方 我找不到適當的地方T.T

  14. 表單動作POST, 目標search_result.php
    搜尋資料集做在search_result.php變數改由POST取得

    選擇選單項目表單會POST給自己
    按下按鈕會將資料POST至search_result.php

  15. 不好意思,請問一下為什麼我資料庫輸入中文,用上面的方法做出三階選單以後顯示出?????,而不是顯示中文字,而且照上面做完以後,我的選單從第一階開始就沒連動下去第二三階

  16. 您好,我是直接貼上您公開的PHP程式碼修改的,我現在遇到一個問題是,當按下onchange網頁更新時,我其他兩個從資料庫抓的欄位資料會變成空,請問這個要如何解決呢?非常感謝解答。

  17. 老師首先我要先謝謝你的指導文,
    老師在最後的步驟(除錯步驟),我沒有程式語言底子
    所以我找不到地方除錯呢
    請問老師我該如何找到要除錯的地方呢??

留言