RS7*_*RS7 3 php arrays validation codeigniter
我在将一段表单验证代码转换为CI 2.0时遇到了一些问题.我正在尝试验证一系列复选框,但由于某些原因,验证无法运行回调或无法验证.
如何验证一系列复选框,以便至少检查一个复选框,并且值必须是选项之一(选项数组的键)?
编辑:
这是一个更好的解释,它失败了我的位置.让我们说我有这些领域:
<input type="checkbox" value="1" name="purpose[]" />
<input type="checkbox" value="2" name="purpose[]" />
Run Code Online (Sandbox Code Playgroud)
我为目的[]设置了两个规则 - 一个是必需的规则,另一个是自定义回调,它检查值是否存在于可能值的数组中.
如果我将字段的名称编辑为:
<input type="checkbox" value="1" name="purpose[abc]" />
Run Code Online (Sandbox Code Playgroud)
甚至将值更改为"",验证通过.它忽略了所需的规则和我的自定义回调.
有人知道如何处理这个问题吗?
Bry*_*ynJ 10
必须将数组传递给set_rules调用后缀为开/关方括号,如下所示:
$this->form_validation->set_rules('checkboxes[]', 'My Checkboxes', 'required');
Run Code Online (Sandbox Code Playgroud)
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 -方法