Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CodeIgniter和多维表单元素名称的验证_Php_Codeigniter - Fatal编程技术网

Php CodeIgniter和多维表单元素名称的验证

Php CodeIgniter和多维表单元素名称的验证,php,codeigniter,Php,Codeigniter,假设我有一个显示组的HTML表单,在每个组中我有一个名称和多个用户。以下是一个示例HTML结构,简化为仅包含相关元素: Group Name: <input name='group[0][name]' /> User 1: <input name='group[0][users][0]' /> User 2: <input name='group[0][users][0]' /> User 3: <input name='group[0][users][

假设我有一个显示组的HTML表单,在每个组中我有一个名称和多个用户。以下是一个示例HTML结构,简化为仅包含相关元素:

Group Name: <input name='group[0][name]' />
User 1: <input name='group[0][users][0]' />
User 2: <input name='group[0][users][0]' />
User 3: <input name='group[0][users][0]' />
<hr />
Group Name: <input name='group[1][name]' />
User 1: <input name='group[1][users][0]' />
User 2: <input name='group[1][users][0]' />
User 3: <input name='group[1][users][0]' />
my
verifyGroupData($group\U data)
函数为每个组调用一次。在本例中,它被调用两次,每次传入组数据。以下是目前的虚拟函数:

function verifyGroupData($data) {
    log_message('info','KRYSTODO: verifyGroupData data ' . print_r($data,true));
    $this->form_validation->set_message('verifyGroupData', 'This is not entirely checked yet.');
    return false;
}
问题是我需要能够为每个组分别显示错误。现在,当我想在HTML视图中添加单个错误显示时,我会:

<?php if(form_error('group[]')) { 
        echo '<div class="validationError">' . form_error('group[]') . '</div>'; 
    }?>
实际上,这根本不会导致调用my
verifyGroupData()


你能提供解决这个问题的方法吗?

这可能值得一试。。。 将规则更改为:

 $this->form_validation->set_rules('group[0][]', 'Group','callback_verifyGroupData');
第二组也一样。请注意字段名称中的额外括号。
恐怕还没有机会测试它,但值得一试!:-)

您是否尝试过调试form_验证库本身以了解发生了什么?它在系统/库/表单验证中。我也尝试了一下。不幸的是,没办法。谢谢你的建议。
$this->form_validation->set_rules('group[0]', 'Group', 'callback_verifyGroupData');
$this->form_validation->set_rules('group[1]', 'Group', 'callback_verifyGroupData');
 $this->form_validation->set_rules('group[0][]', 'Group','callback_verifyGroupData');