【发布时间】:2012-10-12 14:00:14
【问题描述】:
在一个网站中,我想实现一个wizard。它应该看起来像一系列表格。
我的要求是:
- 用户应该能够使用后退和前进浏览器按钮,而不会被提示重新提交表单(来回时)。
- 如果用户在之前填写的页面上后退或前进,这些字段应自动完成
- 如果用户尝试访问一个页面而没有填写前面的步骤,他应该被相应地重定向(最后一个需要的页面)。
- 用户离开和回来后应该能够恢复表单完成。
- 在我的模型中,每一页都需要填写前一页。每个页面都有自己的验证。
- 网址应该很漂亮。
- 该向导应该在没有 javascript 的情况下工作(但不是强制性的)。
你将如何实现它? (一系列http post表单,http get表单,是否通过javascript提交?)
思考:
我计划将所有信息存储在会话中,并在向导结束时将信息保存在数据库中并删除当前会话信息。这样我就可以自动完成这些字段,并且知道用户在完成向导时的位置。
我的主要担忧:
- 如果我使用 http 帖子表单实现,浏览器会提示重新提交每个表单(我不知道如何控制)
- 如果我使用 http GET 表单来实现它,那么 URL 会充满信息,并且可能会很长。而且这不是 GET 请求的方式。
- 如果我通过 javascript 通过 http post 提交每个表单,将不会有提示,但我的向导将无法使用 javascript(也许解决方案是覆盖默认表单行为,使其在使用和不使用 javascript 时都可以使用)李>
【问题讨论】:
-
为什么不在一个表单中简单地使用 jQuery 选项卡(样式看起来像一个多步骤向导流程)?
-
@Kane 好主意。但它需要一些 javascript 来验证每个步骤(仅提交相关字段),并且 no-javascript 后备将是一个巨大的表单。
-
你能在公共网站上展示你喜欢的巫师吗?
-
@Colonel Panic 显然这个最好:voyageronline.files.wordpress.com/2011/09/nerdrage031.jpg
标签: javascript http browser http-post