我有一个带有多选输入字段的表单,根据用户的选择返回一个数组,用户有12个选项可供选择,这意味着不超过12个选项可供选择。用户也可以自由选择多个选项。
因此,在最坏的情况下,用户将选择12个选项,并且阵列将使用这些选项进行POST,我不应接受超过12个选项或少于1个选项。
无论如何,通过查看Codeigniter的表单验证库,我没有找到任何处理数组长度的规则(也许*_length
适用于数组?)
另外,我做了一些快速的研究,但我找不到任何有用的东西,甚至与我的问题有关。
我想到的唯一解决方案是创建一个自定义函数来检查数组的长度
(使用count(Array)
)通过传递最小和最大长度的函数作为一项规则,这可能会很好,但我正在寻找一种原生的方式,我也害怕“重新发明轮子。 “
答案 0 :(得分:0)
我不会检查发布的数组数据的长度,因为您需要检查所提交的所有内容是否仍然存在作为选项进行选择。
因此,当您检查所选内容时,您将自动验证输入是否可以选择(如果您只是首先将数组值唯一)。
您仍然需要自定义功能,因为您需要将提交的值与应该选择的值进行比较。大概这些值存在于DB的某个地方,所以在你的自定义验证例程中,取输入数组,如果由于某种原因它们试图多次提交相同的东西,那么它是唯一的,然后循环遍历所有提交的项目以确保它们全部存在作为可选择的选项。
BTW,'少于1个选项'将缺少您所指的多选的name
的POST数据。