【问题标题】:Storing HTML form templates in a database在数据库中存储 HTML 表单模板
【发布时间】:2015-01-07 23:35:23
【问题描述】:

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

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

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

我正在考虑在用户在数据库中创建自定义表单后将其存储为 html。因此,如果另一个用户想要使用该模板,我只需从数据库中检索该 html 并将其呈现给新用户。

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

【问题讨论】:

  • 为什么不能只存储输入的数量和类型以及名称/标签/默认值等?
  • 这是一个选项,但是对于每个“模板”,这些东西可能有几十种不同的变体,并以有组织的方式从数据库中存储和读取它们,以便可以将另一种形式构建为完整的重复似乎比仅包含表单的整个 html 的一个数据库条目更复杂。但我不确定?这就是我要问的原因:-)

标签: php html mysql


【解决方案1】:

每当您考虑将 HTML 存储在数据库中时,您很可能在错误的行上。

如果您想对所有表单进行通用的结构更改怎么办?您突然必须检查所有记录并进行更改。

相反,请考虑仅使用数据库来存储稍后重新创建表单所必需的基本内容。

也许您有一个 DB 表来存储表单,另一个具有一对多关系的表来存储每个字段定义,等等。

因此,您的数据库将存储输入的数量、它们的类型、标签、验证要求 - 随便什么。然后你就会有一个大脚本来遍历这些并 - 瞧 - 重建表单。

这种方法:

  • 让您更好地控制一般 HTML 结构
  • 更紧密地遵循规范化数据库数据的概念
  • 坚持将数据和结构(即 HTML)分开的概念
  • 减少存储的数据量(没有重复的标签、空格等)

【讨论】:

    【解决方案2】:

    IMO,最好的方法是将表单数据字段存储在数据结构(例如 JSON)中并从中构建您的 html。如果需要,您还可以选择缓存 html 以加快渲染速度。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-02
      • 2016-03-01
      • 1970-01-01
      • 2011-02-09
      • 2015-09-12
      相关资源
      最近更新 更多