在我的页面上,我有一个常规表单,其中包含在form_validation.php文件中定义的一些验证规则。还定义了一些自定义验证回调。一切正常。
可以在excel文件中提供相同的输入,其中单行包含与表单可捕获的数据相同的数据。我想使用相同的规则逐个验证多行。
在我从电子表格中读取一行后,我使用与我的webform中定义的相同的键填充$ _POST数组。然后我调用适当的验证规则:
if($this->form_validation->run('item/add') == FALSE) ...
问题是这只适用于第一行。对于第二行,不触发一些验证规则(例如,基本的“必需”规则)。此外,如果单行验证失败,则会记住错误,并且即使当前行有效,所有将来调用$ this-> form_validation-> run('item / add')的结果都会显示相同的错误消息。
我尝试通过调用以下代码重置验证(没有运气):
$this->form_validation = new CI_Form_validation();
有什么想法吗?
编辑:我想出来了。解决方案描述了HERE答案 0 :(得分:0)
我下载了CI表单验证库并看一看,我不使用Code Igniter,但我的猜测是除了做
$this->form_validation = new CI_Form_validation();
您还必须运行
$this->form_validation->set_rules()
在循环的每次迭代中。否则,新类将不会分配任何验证规则。