0

ブロードバンド サポート ウィザードを開発する必要があります。さまざまなボタンを使用すると、ユーザーとトラブルシューティングするためのさまざまな「パス」につながるため、ステップバイステップのトラブルシューティング ツールである必要があります。

これを行う最も効率的な方法は何だろうと思っていました。今のところ、次の$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 を使用して手順をスキップします。

これは信じられないほど非効率的ですが、私が望むことを行うためのベストプラクティスの方法があるかどうか疑問に思っていました. 基本的に、ユーザーがパスをたどってパスの最後に到達できるツリー構造であり、うまくいけばそれが解決策になります。

ありがとう!

4

3 に答える 3

0

まず、大きな構成配列を使用すると、アプリケーションを変更する能力が大幅に妨げられます。構成配列または配列を処理するメソッドのいずれかを更新する必要がある場合は、両方を変更する必要があり、大量のテストが必要になる可能性があります (単体テストのセットアップがない場合)。

あなたの最善の策は、すべてを非常にシンプルに保つことです。すべてのコンテンツを HTML 内に保持すると、作業がずっと楽になります。これにより簡単になるだけでなく、アプリケーションの実行も高速になります。ステップごとに新しいページをリロード/リダイレクトしても問題ない場合は、各ステップを 1 つの PHP ファイル内に定義しておいてください。したがって、ユーザーは index.php から開始し、クリックしたボタンに応じて新しいページ step2.php に移動します。

ページをリロードせずに次のステップに進む必要がある場合は、AJAX が最適です。新しいコンテンツをメイン コンテナにロードして、そこから続行するだけです。以下に説明するように、同じツリー構造をセットアップできます。唯一の違いは、各ボタンがリダイレクトではなく AJAX 呼び出しであることです。これは単純なトラブルシューティングにはやり過ぎかもしれませんが、見栄えは良いです。

あなたはツリー構造が欲しいと述べました。独自のファイル システム ディレクトリをセットアップして、アプリケーションの整理に役立てることができます。これを強くお勧めします。これは、PHP ファイルとリダイレクト内で実行するのに十分簡単です。たとえば、ユーザーが最初にルーターの問題を抱えている場合、http://domain.com/router/index.phpルーターをサブディレクトリとして使用するようにユーザーをリダイレクトします。ファイアウォールなどの特定のルーターの問題がある場合は、トラブルシューティング ツールに対するニーズの具体性に応じて、ユーザーを/router/firewall.phpまたはにリダイレクトできます。/router/firewall/index.php1 つの構造イデオロギーに簡単に準拠し、それに固執してナビゲーションを簡素化できます。

また、データベースは静的コンテンツにとって無意味で扱いにくいものです。これが非常に動的な Web アプリケーションである場合、非常に役立ちますが、静的なものは、PHP と Javascript を使用した HTML よりもはるかに多くを必要とします。

最後になりましたが、すべての共通ページ コンテンツをインクルード ファイルに入れることをお勧めします。各インクルードは、各ページのテンプレートにすぎないと考えてください。たとえば、メイン ナビゲーション メニューは、PHP インクルードを使用してページに追加されるため、1 つのファイルのみを変更するだけですべてのページで更新できます。これを行う場合は、構成配列の代わりに静的ページを使用することをお勧めします。

于 2013-07-01T20:29:35.807 に答える
0

これをデータベースに保存することは、より優れた動的な方法であり、将来の更新が容易になります。相互に関連するいくつかのテーブルが必要になります (steps テーブル、step_buttons など)。

于 2013-07-01T19:52:02.657 に答える