在我的应用程序中,用户可以创建自己的Web表单进行注册。每个新添加的字段都有三个元素:field_name
,field_type
和field_rules
。我至少需要指定field_name
。
我的问题是当验证失败时,我在页面重新加载时丢失了新添加的表单字段。如何将表单错误发送回每个受尊重的表单字段,并在表单验证失败时仍然保留所有工作?
编辑:对不起,如果我不清楚。好的,所以jQuery用于向页面添加表单字段。每个克隆的div包含三个文本框:field_name,field_type和field_rules。我想要做的是使用CodeIgniter迭代这些数组,以检查我需要的字段是否包含内容。如果没有,我想将用户发回到表单页面,其中包含所有用户添加的jQuery克隆div,其中包含用户定义的数据。我一直在研究一个条件构造,它将检查$ data数组以确定它是否应该迭代div。我想知道的是,是否有更简单的方法:即:在下一页加载时将数据发送到jQuery。
答案 0 :(得分:1)
检查出来:http://www.jqbyte.com/StickyForms/
这是一个很好的技巧,你可以使用 - 在cookie中存储新添加的字段和值。
答案 1 :(得分:0)
有一些建议我想给你。
当你使用jquery创建一个隐藏的输入字段并将其值设置为0时 当用户创建克隆div时,将其值更新为+1 当您提交字段并且验证失败时,可以使用发布数据 使用jquery document.ready并调用一个简单的函数,该函数将在页面加载时运行并获取隐藏的输入值 如果值为0则不执行任何操作,如果值为3,则设置3个克隆div 这样,用户将拥有与提交表单之前相同数量的字段。
还有一些提交表格和获取发布数据的其他方式。
答案 2 :(得分:0)
在这种情况下,表单提交的传统模型在重新创建PHP需要输出的表单字段方面不太实用。
您应该查看使用Ajax调用来执行表单提交。使用Ajax,您可以获取所有表单字段并将它们捆绑到请求中。然后,请求将发布到您的服务器,并从服务器调用返回响应。
使用Ajax,整个页面不会重新加载。您负责从服务器解析结果并将其呈现给用户。
要实现这一点,您应该重新考虑处理表单输出/提交的控制器。提交组件应该进入一个单独的控制器,以JSON
形式输出结果,以便jQuery可以很容易地解析它。
参考:Here这是一个看起来可能对你有用的教程。
如有任何问题,请发表评论。