0

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

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

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

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

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

4

1 回答 1

0

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

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

不过,您仍然需要一个自定义函数,因为您需要将提交的值与应该可以选择的值进行比较。大概这些值存在于数据库中的某个地方,因此在您的自定义验证例程中,获取输入数组,如果他们出于某种原因尝试多次提交相同的东西,则将其唯一,然后遍历所有提交的项目以确保它们都存在作为可选的选项。

顺便说一句,“少于 1 个选项”将是缺少name您所指的多选的 POST 数据。

于 2012-08-21T07:45:18.357 回答