在数据库中存储 HTML 表单模板
Storing HTML form templates in a database
我允许用户使用他们选择的任意数量的输入和元素创建自定义表单。然后我希望用户能够将该表单另存为各种模板,以便其他用户可以使用该模板来创建他们自己的自定义表单,就像它一样。
可能有数百种不同的 post 类型,每一种都有不同的元素等。
在 PHP 和 MySQL 中完成此任务的最佳方法是什么?
我正在考虑在用户在数据库中创建自定义表单后将其 html 存储起来。因此,如果另一个用户想要使用该模板,我只需从数据库中检索 html 并将其呈现给新用户。
这是最好的方法吗?许多网站都做类似的事情(例如 Wufoo),我觉得将原始 html 存储在数据库中有点奇怪。
IMO,最好的方法是将表单数据字段存储在数据结构中(例如 JSON)并从中构建您的 html。如果需要,您也可以选择缓存 html 以加快渲染速度。
如果实施得当,它的优点是可以以一致的格式保存有关表单应包含的内容的数据,这意味着如果您想更新 html 呈现逻辑,您将能够拥有它立即为所有存储的表单更新 html(或者简单地清除它们缓存的 html,下次呈现特定表单时,缓存新的 HTML),而不是试图拼凑一些东西解析不一致保存的 HTML 数据并尝试更新它们。
请注意,这可能会略微降低用户获得的灵活性,因为您必须将他们的选项限制为一组有限的可用内容,但长期维护的好处通常会大大超过这个缺点。
每当您考虑将 HTML 存储在数据库中时,您可能 走错了路。
如果您想对所有表单进行通用结构更改怎么办?您突然不得不检查所有记录并进行更改。
相反,请考虑仅使用数据库来存储必需的骨架稍后重新创建表单。
也许您有一个数据库 table 来存储表单,另一个 table 与它具有一对多关系以存储每个字段定义,依此类推。
因此您的数据库将存储输入的数量、它们的类型、标签、验证要求——随便什么。然后你会有一个大脚本来检查这些 - 瞧 - 重建表格。
这种方法:
- 让您更好地控制一般 HTML 结构
- 更符合规范化数据库数据的概念
- 坚持将数据和结构分开的概念(即 HTML)
- 减少存储的数据量(无重复标签、空格等)
我允许用户使用他们选择的任意数量的输入和元素创建自定义表单。然后我希望用户能够将该表单另存为各种模板,以便其他用户可以使用该模板来创建他们自己的自定义表单,就像它一样。
可能有数百种不同的 post 类型,每一种都有不同的元素等。
在 PHP 和 MySQL 中完成此任务的最佳方法是什么?
我正在考虑在用户在数据库中创建自定义表单后将其 html 存储起来。因此,如果另一个用户想要使用该模板,我只需从数据库中检索 html 并将其呈现给新用户。
这是最好的方法吗?许多网站都做类似的事情(例如 Wufoo),我觉得将原始 html 存储在数据库中有点奇怪。
IMO,最好的方法是将表单数据字段存储在数据结构中(例如 JSON)并从中构建您的 html。如果需要,您也可以选择缓存 html 以加快渲染速度。
如果实施得当,它的优点是可以以一致的格式保存有关表单应包含的内容的数据,这意味着如果您想更新 html 呈现逻辑,您将能够拥有它立即为所有存储的表单更新 html(或者简单地清除它们缓存的 html,下次呈现特定表单时,缓存新的 HTML),而不是试图拼凑一些东西解析不一致保存的 HTML 数据并尝试更新它们。
请注意,这可能会略微降低用户获得的灵活性,因为您必须将他们的选项限制为一组有限的可用内容,但长期维护的好处通常会大大超过这个缺点。
每当您考虑将 HTML 存储在数据库中时,您可能 走错了路。
如果您想对所有表单进行通用结构更改怎么办?您突然不得不检查所有记录并进行更改。
相反,请考虑仅使用数据库来存储必需的骨架稍后重新创建表单。
也许您有一个数据库 table 来存储表单,另一个 table 与它具有一对多关系以存储每个字段定义,依此类推。
因此您的数据库将存储输入的数量、它们的类型、标签、验证要求——随便什么。然后你会有一个大脚本来检查这些 - 瞧 - 重建表格。
这种方法:
- 让您更好地控制一般 HTML 结构
- 更符合规范化数据库数据的概念
- 坚持将数据和结构分开的概念(即 HTML)
- 减少存储的数据量(无重复标签、空格等)