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

将其存储在数据库中会更好,更动态,并且将来更容易更新。您将需要几个相互关联的表(步骤表、step_buttons 等)。

于 2013-07-01T19:52:02.657 回答
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 包含将主导航菜单添加到页面,因此只需更改一个文件即可在所有页面上更新它。如果你这样做,那么静态页面而不是配置数组就是要走的路。

于 2013-07-01T20:29:35.807 回答
0

敏捷 UI 提供了一个向导组件,在以下情况下可能很有用:

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

步骤是动态定义的,因此您可以实现逻辑并基于逻辑引入额外的步骤。一切都是用PHP编写的,没有数组逻辑,易于理解和支持。

于 2018-01-26T14:00:39.347 回答