CakePHP高度集成的SignUp表单

时间:2016-11-16 02:02:26

标签: php ajax forms cakephp transactions

我只是想知道如何使用cakephp 2.x建立这样的注册表单: 成员可以有多个工作时间和多个休假时间。 应该有一个大型注册表单,其中一个提交按钮和3个视觉上分开的区域:memberdetails,工作时间,休假时间。 在注册期间,成员应在memberdetails中输入他的个人数据,并在点击提交按钮之前在指定区域添加任意工作时间和任意休假时间。在提交整个表单之前,所有输入的时间都应在表格中以表格形式列出。在某些时候,成员详细信息,工作时间和休假时间看起来很好,用户提交表单(我知道这只是理想情况,并且缺少一些功能)。 我的第一种方法是在成员表单中包含用于添加工作时间和休假时间的表单,并通过Ajax-POST将序列化表单数据发送到其他控制器操作(Workingtime-> add,Vacationtime-> add),并加载整个相关数据通过Ajax使用类似crud索引的函数,并将响应注入注册表单而不重新加载它。这看起来像验证,安全组件或视图布局这样简单,因为大部分工作将由cakephp而不是javascript完成,但我认为只有在我已经为该成员创建了数据库ID之后才能工作 - 在此之后我可以存储工作时间和假期。就像已经说过的那样,我更喜欢一个带有一个提交按钮的表单,即使已经添加了工作时间或休假时间,也可以取消整个注册。

那么实现像这样的集成形式的蛋糕方法是什么?在加载表单时启动事务并创建虚拟成员是否有用?然后使用此虚拟记录的ID来存储相关的工作时间和休假时间?当点击提交按钮时,虚拟成员会更新以存储输入的个人数据,所有内容都可以被提交?或者,如果输入的相关模型数据只能在不保存的情况下进行验证,那么只需将这些数据缓存到最终的事务块中? 还有其他想法吗?

1 个答案:

答案 0 :(得分:0)

我认为最好的方法是管理国家。允许用户输入基本数据,更改状态,然后您可以询问更多信息,但您已经有用户ID来关联和匹配信息。如果用户稍后回来,它将具有当前状态。

使用Cake,Component可以帮助您从一个步骤转到另一个步骤。您输入的每个数据都应该经过验证。