1

多选列表是这样命名的:<select name="list[]" multiple>

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

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

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

但这会引发错误,可能是因为除非选择了至少一项,否则 PHP 不会接收数组。如果用户确实选择了至少一个选项,则没有错误。

抱怨是“列表”是一个不存在的索引。

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

我也在尝试使用try-catch语法,但也有问题。我有一个针对该问题的单独帖子。

关于检测没有选择的列表框有什么建议吗?

谢谢,达娜

4

1 回答 1

3

尝试使用empty()

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

对于您的情况,!empty()将是TRUEiflist[]设置并且它至少具有一个值。

从文档中:

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

以下内容被认为是空的:

  • ""(一个空字符串)
  • 00作为整数)
  • 0.00作为浮动)
  • "0"0作为字符串)
  • NULL
  • FALSE
  • array()(一个空数组)
  • $var;(声明的变量,但没有值)
于 2013-06-23T22:34:16.447 回答