Typo3 表单框架和前端覆盖
Typo3 Forms framework and frontend overlay
我正在浏览 typo3 核心表单框架文档,但没有满足我的要求的相关答案:
- 表单必须显示在前端叠加层中。
- 填充过程涉及多个步骤,用户可以在其中来回切换。
- 表单字段必须仍可由编校者编辑。
我不确定表单框架的行为方式,到目前为止,我记得我认为可以从后端模块配置多个步骤,但我不知道它是否在每个步骤后向控制器发送请求,或者是否它仅在提交时发送所有内容。
虽然我对如何实现它有一个想法,它是基于这个问题 。这只会让我向前端提供整个 html 内容,并让他将整个表单分成几个步骤。分隔将基于通过编辑器添加一些特殊标签,这些标签将包围您在每个步骤中想要的字段。
您如何看待这种方法?
表单框架单独处理每个表单步骤。因此,无需开发自己的表单 运行时间,您必须继续单独执行每个步骤。
我看到两种可能性:
1.将每个表单步骤从前端发送到表单控制器并替换前端中的响应(html 表单)。
这是快速简便的方法,因为您使用现有的表格 运行time.
- 准备一个页面,其中 return 呈现的形式为 html
- 通过JavaScript
获取此页面
- 将表单数据发送回给定的表单操作
- 表单控制器处理表单及其所有验证器、规则和完成器,return下一步、上一步、存在错误的当前步骤或完成器对成功的响应
- 用已经呈现的 html 表单框架的响应替换您在前端的表单
这种方式的优势:更少的工作量,并且您可以依赖已经存在的验证器,因为您会得到一个已经验证过的响应。
这种方式的缺点 --> 实施前端验证更加困难,因为您混合了前端和服务器端验证。
2。使表单框架无头并基于 json
工作
我认为这是更好的方法,但需要付出更多的努力。
您必须扩展/覆盖控制器和表单 运行 时间。这使您可以更灵活地处理 JavaScript 的表单,例如return json 对象中的错误。当您希望使用 React 或 Vue 等 JS 框架呈现和处理表单时,它会让生活变得更轻松。
你的问题:
What do you think about that approach?
如果我没看错,你想在后台保留一个表单步骤,而让编辑器通过添加标签将这个表单步骤分成多个步骤?您可以尝试,但我没有看到保留原始表单步骤并通过将步骤发送到控制器并处理响应来处理每个步骤的任何真正优势(如 1. 中所述)
总结:
过去,我想了很多关于 JavaScript 处理表单的问题,得出的结论是:
保持表单框架的行为完全不受服务器端处理的影响,或者使其成为前端驱动,拥有自己的 运行 时间。客户端和服务器端渲染之间的所有混合迟早会 运行 导致更大的问题或至少需要付出很大的努力。表单框架非常复杂,有很多可能性、钩子驱动行为等。根据我的经验,您必须知道在不失去控制的情况下进行开发非常好。在只有一两个基本形式的较小项目中,我会尽量避免使用大量 JS 的特殊情况。在更大的项目(预算更多)中,我肯定会采用我提到的第二种方法(目前,我正在开发基于 vue.js 的表单前端呈现和处理)。但这些只是我的五分钱...
我正在浏览 typo3 核心表单框架文档,但没有满足我的要求的相关答案:
- 表单必须显示在前端叠加层中。
- 填充过程涉及多个步骤,用户可以在其中来回切换。
- 表单字段必须仍可由编校者编辑。
我不确定表单框架的行为方式,到目前为止,我记得我认为可以从后端模块配置多个步骤,但我不知道它是否在每个步骤后向控制器发送请求,或者是否它仅在提交时发送所有内容。
虽然我对如何实现它有一个想法,它是基于这个问题
您如何看待这种方法?
表单框架单独处理每个表单步骤。因此,无需开发自己的表单 运行时间,您必须继续单独执行每个步骤。
我看到两种可能性:
1.将每个表单步骤从前端发送到表单控制器并替换前端中的响应(html 表单)。
这是快速简便的方法,因为您使用现有的表格 运行time.
- 准备一个页面,其中 return 呈现的形式为 html
- 通过JavaScript 获取此页面
- 将表单数据发送回给定的表单操作
- 表单控制器处理表单及其所有验证器、规则和完成器,return下一步、上一步、存在错误的当前步骤或完成器对成功的响应
- 用已经呈现的 html 表单框架的响应替换您在前端的表单
这种方式的优势:更少的工作量,并且您可以依赖已经存在的验证器,因为您会得到一个已经验证过的响应。 这种方式的缺点 --> 实施前端验证更加困难,因为您混合了前端和服务器端验证。
2。使表单框架无头并基于 json
工作我认为这是更好的方法,但需要付出更多的努力。 您必须扩展/覆盖控制器和表单 运行 时间。这使您可以更灵活地处理 JavaScript 的表单,例如return json 对象中的错误。当您希望使用 React 或 Vue 等 JS 框架呈现和处理表单时,它会让生活变得更轻松。
你的问题:
What do you think about that approach?
如果我没看错,你想在后台保留一个表单步骤,而让编辑器通过添加标签将这个表单步骤分成多个步骤?您可以尝试,但我没有看到保留原始表单步骤并通过将步骤发送到控制器并处理响应来处理每个步骤的任何真正优势(如 1. 中所述)
总结: 过去,我想了很多关于 JavaScript 处理表单的问题,得出的结论是: 保持表单框架的行为完全不受服务器端处理的影响,或者使其成为前端驱动,拥有自己的 运行 时间。客户端和服务器端渲染之间的所有混合迟早会 运行 导致更大的问题或至少需要付出很大的努力。表单框架非常复杂,有很多可能性、钩子驱动行为等。根据我的经验,您必须知道在不失去控制的情况下进行开发非常好。在只有一两个基本形式的较小项目中,我会尽量避免使用大量 JS 的特殊情况。在更大的项目(预算更多)中,我肯定会采用我提到的第二种方法(目前,我正在开发基于 vue.js 的表单前端呈现和处理)。但这些只是我的五分钱...