道歉我此时无法发布任何代码因为我离开了我的办公桌,但我会尽可能清楚地解释我的问题,希望有人可以提供帮助!
我有一个提交到控制器中的方法的长格式。为了使用户更友好,我将表单拆分为多个部分。每个部分都有一个隐藏字段作为标志。表单提交的方法由测试这些标志的条件组成。如果找到标志,则可以显示表单的下一部分。我也可以分段收集数据,而不是一次性处理整个数据。
当我尝试使用set_select方法为选择菜单设置默认值时,出现了问题。该方法是CI系统form_validation库的一部分。如果将可选的第三个参数作为true传递给方法,则应将该值设置为默认值。但是,这仅在先前未运行form_validation时才有效。这是完全合理的,因为假设只有在第一次看到表格时才需要默认值。在任何提交之前,因此在任何发布数据之前。
当然,这不是我的情况。如果我只是清空post数组,那么就会失败set_select函数的点,因为表单上方的任何选择菜单将不再能够设置为它们的最后一个值。
有人能想到一个好的解决方案吗?我知道使用AJAX会更容易,但我想确保每个人都能获得最佳体验,无论他们是否决定使用JavaScript。
答案 0 :(得分:0)
就个人而言,我会使用AJAX将表单分解为3个部分,每次都通过AJAX提交。
那么对于非JavaScript用户(少数用户),我只会完整地显示表单,并正常处理。
打破形式听起来像“功能”而不是功能。这意味着javascript用户将能够利用打破表单的“功能”,而非JavaScript用户仍然可以毫不费力地完成提交信息的“功能”。
答案 1 :(得分:0)
这样做是怎么回事:
OK
,那么您可以继续进行任何您想要的过程答案 2 :(得分:0)
我已经决定使用set_select可能不是我的最佳选择,所以我在我的视图文件中添加了一些代码,这些代码将针对每个案例执行此操作,而不是尝试使用泛型函数。 不理想,但正在发挥作用!