【问题标题】:CodeIgniter 2.0 - validating arraysCodeIgniter 2.0 - 验证数组
【发布时间】: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]" />

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

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

【问题讨论】:

    标签: php arrays codeigniter validation


    【解决方案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

    【讨论】:

    • 感谢您的回复。在搞砸了一点之后,我更好地确定了我的问题。你能检查一下我原来问题中的编辑吗?再次感谢。
    • 唯一验证不是如果你知道我该怎么做请帮忙。谢谢。
    猜你喜欢
    • 2017-02-17
    • 2016-09-26
    • 2012-01-30
    • 2016-09-22
    • 2016-12-14
    • 2013-01-05
    • 2013-07-20
    • 2016-05-19
    • 1970-01-01
    相关资源
    最近更新 更多