【问题标题】:Running validation multiple times on single request在单个请求上多次运行验证
【发布时间】:2011-07-04 09:34:52
【问题描述】:

在我的页面上,我有一个常规表单,其中包含在 form_validation.php 文件中定义的一些验证规则。还定义了一些自定义验证回调。一切正常。

可以在 excel 文件中提供相同的输入,其中单行包含表单可以捕获的相同数据。我想使用相同的规则来一一验证多行。

从电子表格中读取一行后,我使用与我的网络表单中定义的相同的键填充 $_POST 数组。然后我调用相应的验证规则:

if($this->form_validation->run('item/add') == FALSE) ...

问题是这仅适用于第一行。对于第二行,一些验证规则不会被触发(例如基本的“必需”规则)。此外,如果单个行的验证失败,则会记住错误,并且以后对 $this->form_validation->run('item/add') 的所有调用都会产生相同的错误消息,即使当前行是有效的。

我尝试通过调用以下代码来重置验证(没有运气):

$this->form_validation = new CI_Form_validation();

有什么想法吗?

编辑:我想通了。解决方案描述HERE

【问题讨论】:

    标签: php validation codeigniter


    【解决方案1】:

    我下载了CI表单验证库看了一下,我没有用Code Igniter但是我猜除了做

    $this->form_validation = new CI_Form_validation();
    

    您还必须运行

    $this->form_validation->set_rules()
    

    在循环的每次迭代中。否则,新类将不会分配任何验证规则。

    【讨论】:

    • 要使用的规则集作为 run() 方法的参数传递。在上面的示例中,我使用规则集“item/add”。这适用于第一行,所以问题一定出在其他地方。
    • 你能发布你正在运行的循环吗
    猜你喜欢
    • 2020-01-22
    • 2017-09-02
    • 1970-01-01
    • 2019-02-06
    • 2020-05-31
    • 2012-08-21
    • 2017-08-16
    • 1970-01-01
    • 2015-08-07
    相关资源
    最近更新 更多