我有一个带有 CI 验证的表单,它使用数组作为输入名称。该视图最初具有以下代码:
<input type="text" name="feed_urls[]"
value="<?php echo set_value('feed_urls[]', ''); ?>" >
当加载到浏览器中时,它会正确转换为:
<input type="text" name="feed_urls[]" value="">
然后通过 Jquery,用户可以<input>
在提交之前向 DOM 添加更多相同的 's,所以最终发布的内容可能是例如
<input type="text" name="feed_urls[]" value="">
<input type="text" name="feed_urls[]" value="">
<input type="text" name="feed_urls[]" value="">
现在,如果提交的数据通过验证,一切都很好并存储在数据库中。但是如果验证失败,控制器会发送回视图,但我看不到<input>
POSTed 表单的 N 。我只看到一个并且它是空的,这是可以理解的,因为我没有向 set_values() 提供第二个参数,但是再次预期的是通过 $this->input->post 重新填充输入(feed_urls) 数组,其中包含无效的 POST 数据。
我确实在控制器上验证 $this->input->post('feed_urls') 是否有发布的内容(无效或无效)。
我已阅读 CI 用户指南文档,了解使用数组作为字段名称进行验证
关于 set_value() 的正确用法有什么想法吗?正确的意思是,在验证失败时,我得到了 N 个已发布的输入,并一一正确地重新填充。