CodeIgniter 2.0 - 验证数组

Posted

技术标签:

【中文标题】CodeIgniter 2.0 - 验证数组【英文标题】:CodeIgniter 2.0 - validating arrays 【发布时间】:2011-07-10 12:23:57 【问题描述】:

我在将一段表单验证代码转换为 CI 2.0 时遇到了一些问题。我正在尝试验证一组复选框,但由于某种原因验证无法运行回调或未验证。

如何验证一组复选框,以便至少选中一个且值必须是选项之一(选项数组的键)?

编辑:

这是对我失败的地方的更好解释。假设我有这些字段:

<input type="checkbox" value="1" name="purpose[]" />
<input type="checkbox" value="2" name="purpose[]" />

我为 purpose[] 设置了两条规则 - 一条是必需规则,另一条是自定义回调,用于检查值是否存在于可能值数组中。

如果我将字段名称编辑为:

<input type="checkbox" value="1" name="purpose[abc]" />

甚至将值更改为“”,验证通过。它忽略了所需的规则和我的自定义回调。

有人知道如何处理这个问题吗?

【问题讨论】:

【参考方案1】:

必须将数组传递给您的 set_rules 调用,并以方括号为后缀,如下所示:

$this->form_validation->set_rules('checkboxes[]', 'My Checkboxes', 'required');

CI 用户指南中有更多详细信息 - https://www.codeigniter.com/user_guide/libraries/form_validation.html#using-arrays-as-field-names

要检查复选框值是否为多个值之一,您需要创建一个自定义回调函数 - https://www.codeigniter.com/user_guide/libraries/form_validation.html#callbacks-your-own-validation-methods

【讨论】:

感谢您的回复。在搞砸了一点之后,我更好地确定了我的问题。你能检查一下我原来问题中的编辑吗?再次感谢。 唯一验证不是如果你知道我该怎么做请帮忙。谢谢。

以上是关于CodeIgniter 2.0 - 验证数组的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Codeigniter 和 Jquery 验证多维数组

Codeigniter 在表单中验证数组

codeigniter 表单验证和数组作为字段名称

如何在codeigniter中验证数组值

是我做错了,还是在使用数组作为字段名时 CodeIgniter 表单验证库中存在错误?

使用表单验证配置文件设置CodeIgniter错误消息