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 验证多维数组