将HTML表单模板存储在数据库中

时间:2015-01-07 23:35:24

标签: php html mysql

我允许用户使用他们选择的任意数量的输入和元素创建自定义表单。然后,我希望用户能够将该表单另存为各种模板,以便其他用户可以使用该模板创建自己的自定义表单。

可能有数百种不同的帖子类型,每种类型都有不同的元素等。

在PHP和MySQL中实现这一目标的最佳方法是什么?

我想在用户在数据库中创建自定义表单时,只存储自定义表单的html。因此,如果其他用户想要使用该模板,我只需从数据库中检索该html并将其呈现给新用户。

这是最好的方法吗?许多网站做类似的事情(例如,Wufoo),在数据库中存储原始html似乎有点奇怪。

2 个答案:

答案 0 :(得分:5)

任何时候你想将HTML存储在数据库中,你可能可能在错误的行上。

如果您想对所有表单进行广义的结构更改,该怎么办?你突然必须通过所有记录并做出改变。

相反,请考虑仅使用数据库来存储必要的以便稍后重新创建表单

也许你有一个用于存储表单的数据库表,另一个与它存在一对多关系的表,用于存储每个字段定义,依此类推。

因此,您的数据库将存储输入数量,类型,标签,验证要求等等。然后你会有一个大脚本可以通过这些来掠过 - 瞧 - 重建表格。

这种方法:

  • 可让您更好地控制常规HTML结构
  • 更接近于规范化数据库数据的概念
  • 坚持将数据和结构(即HTML)分开的概念
  • 减少了存储的数据量(没有重复的标签,空白等)

答案 1 :(得分:2)

IMO,最好的方法是将表单数据字段存储在数据结构(例如JSON)中并从中构建html。您也可以选择缓存html,以便在需要时更快地进行渲染。

如果实施得当,这样做的好处是可以保持表格应该以一致的格式包含的数据,这意味着如果您想要更新html呈现逻辑,您可以让它更新所有存储的html立即形成(或简单地清除它们的缓存html,下次渲染特定表单时,缓存新的HTML),而不是试图将解析不一致保存的HTML数据的东西整合在一起,并尝试更新它们。

请注意,这可能会略微降低用户获得的灵活性,因为您必须将其选项限制为一组有限的可用内容,但长期维护的好处通常会大大超过这一缺点。