如何集成Codeigniter';s使用PHP进行表单验证';s计数(数组)


How to integrate Codeigniter's form validation with PHP's count(Array)?

我有一个带有多选输入字段的表单,该字段根据用户的选择返回一个数组,用户有12个选项可供选择,这意味着可供选择的选项不超过12个。此外,用户可以自由选择多个选项。

因此,在最坏的情况下,用户将选择12个选项,并且数组将用这些选项张贴,我不应该接受超过12个选项或少于1个选项。

无论如何,通过查看Codeigniter的表单验证库,我没有发现任何处理数组长度的规则(也许*_length适用于数组?)

此外,我做了一些快速的研究,但我找不到任何有用的东西,甚至找不到与我的问题有关的东西。

我想到的唯一解决方案是创建一个检查数组长度的自定义函数
(使用count(Array))通过将最小和最大长度作为规则传递函数,这可能会很好地工作,但我正在寻找一种本地的方法来完成它,而且我害怕"重新发明轮子"。

我不想检查发布的数组数据的长度,因为您需要检查提交的所有内容是否确实存在,作为选择的选项。

因此,当您检查所选的任何内容是否是您可以选择的内容时(如果您只是先使数组值唯一),您将自动验证输入。

不过,您仍然需要一个自定义函数,因为您需要将提交的值与应该可以选择的值进行比较。假设这些值存在于数据库中的某个位置,因此在您的自定义验证例程中,获取输入数组,使其唯一,以防他们出于某种原因多次尝试提交相同的内容,然后循环查看所有提交的项目,以确保它们都作为可选选项存在。

顺便说一句,"小于1选项"是指您所指多选的name没有POST数据。