【发布时间】:2010-08-03 03:10:49
【问题描述】:
我有一个页面,访问时会显示与视频相关的信息表:
- 嵌入代码
- 标题
- 说明
- 当前画廊
- 缩略图
第一次访问页面时,此信息是只读的。
有一个选择菜单有以下选项:
- 编辑说明
- 创建缩略图(上传/替换)
- 编辑嵌入代码
- 更改图库
- 删除视频
当用户选择一个选项时,会显示相同的初始数据表,但在必要时会显示相关的表单输入。
例如,如果选择了“编辑描述”,则页面会重新加载,并且描述文本会替换为文本输入。如果选择“创建缩略图”,则显示文件上传输入。
这个想法是将所有信息一起显示,但限制一次可以编辑的数量。
我知道状态模式是一种可能的解决方案,因为每条数据至少可以处于两种状态中的一种:
- 显示状态
- 表单输入状态
但是,我的问题是,使用状态模式会不会过大?
此时,每次访问页面时,表单的每个部分都会通过 switch 语句决定它应该处于“显示”还是“输入”状态,然后进行相应的操作。我想知道实现状态模式设计是否会使更改表单和创建类似表单更容易。
谢谢!
【问题讨论】:
-
更好:为什么不使用javascript在用户单击链接时生成表单。这样他就不必重新加载页面了。
-
好吧,我还没有涉足 ajax 并试图保持简单。
-
好吧,我不是在建议 ajax(尽管这是个好主意)。表格仍然可以以正常方式提交;这只是动态创建表单的问题(或者只是将其包含在 HTML 中并将显示从无更改为阻止)。
-
@Artefacto - 谢谢你的推荐。我可能最终会构建更多的 javascript,但我正在构建一个我将独立维护的系统,并初步决定除非绝对必要,否则不依赖 javascript。例如,我正在使用 javascript 进行“图像重新排列”脚本。谢谢你的想法是个好主意!
-
嗨,迈克,我相信您已经为您的案例实现了状态模式。您介意分享代码示例吗?
标签: php forms design-patterns state-pattern