2013-07-01 23 views
0

我需要開發一個寬帶支持嚮導。它需要成爲一步一步的問題排查工具,因爲在不同的按鈕中會引導您通過不同的「路徑」來排除用戶故障。基於PHP和JavaScript的支持嚮導

我想知道這樣做的最有效的方法是,因爲現在所有我能想到的是一類具有$steps屬性看起來像這樣:

private $steps = array(
    'start' => array(// this is the unique identifier for this step 
     'text' => 'Is this a router problem or an exchange problem?' // the text for this step 
     'buttons' => array(// holds the buttons which lead to the other steps 
      array('text' => 'Router problem', 'goto' => 'router-problem'), // goto is the unique identifier for another step 
      array('text' => 'Exchange problem', 'goto' => 'exchange-problem') 
     ) 
    ) 
); 

,然後在使用$steps頁面來製作元素,並使用JavaScript跳過這些步驟。

雖然這看起來效率非常低,但我想知道是否有最佳做法做我想做的事。本質上是一個樹形結構,用戶可以沿着路徑走到路徑的盡頭,希望能夠成爲解決方案。

謝謝!

回答

0

首先,使用大型配置數組將嚴重阻礙您修改應用程序的能力。如果你需要更新配置數組或者處理數組的方法,那麼它們都可能需要改變,並且需要大量的測試(如果你沒有單元測試設置)。

最好的辦法是保持一切都非常簡單。保留HTML中的所有內容,你的生活將變得更加簡單。這不僅會更容易,而且應用程序運行速度也會更快。如果您可以重新加載/重定向到每個步驟的新頁面,請將每個步驟定義在一個PHP文件中。因此,用戶從index.php開始,並根據他們點擊哪個按鈕進入新頁面step2.php。

如果您需要轉到下一步而不重新加載頁面,那麼AJAX是您最好的朋友。只需在主容器中加載新內容並從那裏繼續。如下所述,可以設置相同的樹形結構。唯一的區別是每個按鈕都是AJAX調用而不是重定向。這對於簡單的故障排除工具來說可能是過分的,但它看起來不錯!

你已經說過你想要一個樹形結構。您可以設置您自己的文件系統目錄以幫助組織您的應用程序,並且強烈建議您這樣做。這很容易在PHP文件和重定向中完成。例如,如果用戶處於開始狀態並出現路由器問題,那麼您將用戶重定向到http://domain.com/router/index.php,並使用路由器作爲子目錄。如果他們有特定的路由器問題(例如防火牆),則可以將用戶重定向到/router/firewall.php/router/firewall/index.php,具體取決於您對故障排除程序的具體要求。您可以輕鬆遵循一種結構思想並堅持使用它來簡化導航。

此外,數據庫對於靜態內容毫無意義和麻煩。如果這是一個高度動態的Web應用程序,那麼它會非常有幫助,但是任何靜態的東西都不需要遠遠超過HTML和PHP和Javascript。

最後但並非最不重要,我建議將所有常見頁面內容放入包含文件中。將每個包含都視爲每個頁面的模板。例如,一個主導航菜單將被添加到使用PHP包含的頁面,所以它可以通過只更改一個文件在所有頁面上更新。如果你這樣做,那麼靜態頁面而不是配置數組是可行的。

0

將其存儲在數據庫中會更好,更具動態性,並且在將來更容易更新。您將需要多個相互關聯的表格(步驟表,step_buttons等)。

0

敏捷UI提供嚮導組件,其可以是在殼體這樣的有用:

http://agile-ui.readthedocs.io/en/latest/wizard.html

步驟是動態定義的,這樣就可以實現邏輯和介紹了基於邏輯額外的步驟。一切都是用PHP編寫的,沒有數組邏輯,因此很容易理解和支持。