我想知道如何在CFWheels中设置多步骤表单。
显然我需要在会话中存储表单数据等,但我想知道从轮子角度来看这种“轮子方式”的最佳方法。
我的控制器中只有一个动作可以处理吗?或者最好将表格的每个部分分开分开处理?
对此以及可能的代码示例的建议将不胜感激。
谢谢, 迈克尔
答案 0 :(得分:1)
我过去的方式是使用Ajax调用和jquery模式。
虽然jquery模态并不重要,但我只是喜欢美学。一个简单的div替换也将起作用。如果您无法确定用户是否可以使用AJAX,那么它将不适合您,但您可以使用弹出窗口。
使用Ajax调用多步骤表单的优点是您可以将表单内容从一个步骤调整到另一个步骤。另一个优点是您不必将用户数据存储在缓存或会话中。因为每次发送表单时,都可以使用POST或GET。
为了实现这一点,设置它的最快方法是使用名为RemoteFormHelpers的插件。然后表单的每一步都是一个不同的控制器(或者基于传递的数据的switch语句相同)
我认为这是一种非常通用的方式,但是你不能做一个使用文件上传的表单,这不容易,因为ajax不会让你在没有严重痛苦的情况下做到这一点。