测试空的多选列表

时间:2013-06-23 22:28:48

标签: php listbox multi-select

多选列表因此命名为:<select name="list[]" multiple>

提交表单时,如果用户没有选择任何内容,那么我希望忽略该输入。 我在尝试:

if (isset($_POST["list"]))

if (count($_POST["list"]))

但是会抛出错误,大概是因为除非选择了至少一个项目,否则PHP不会接收数组。如果用户确实选择了至少一个选项,则没有错误。

投诉是“list”是一个不存在的索引。

我至少需要以下解决方案之一: 强制提交发送一个空数组,以便$_POST中的索引合法,或者 我需要测试索引变量的存在而不会抛出错误。

我也尝试使用try-catch语法,但也遇到问题。我有一个单独的帖子可以解决这个问题。

有关检测没有选择任何内容的列表框的任何建议吗?

谢谢, 德纳

1 个答案:

答案 0 :(得分:2)

尝试使用empty()

if (!empty($_POST["list"])) {

对于您的情况,!empty()如果TRUE设置为则为list[]如果至少有一个值则为

来自文档:

如果var存在且具有非空的非零值,则返回FALSE。否则返回TRUE

以下内容被认为是空的:

  • ""(空字符串)
  • 00为整数)
  • 0.00作为花车)
  • "0"0为字符串)
  • NULL
  • FALSE
  • array()(空数组)
  • $var;(声明的变量,但没有值)