2011-03-04 62 views
0

我有一个复选框组,当您勾选一个复选框组时,它可以正常工作,但如果所有复选框都未选中,则它会返回一个错误。如果复选框组未勾选,则返回错误

下面的代码:

foreach ($_SESSION['CheckboxGroup1'] as $val) { 
$checkbox1results .= $val.",\n"; 
} 

这是我找回了错误:

Warning: Invalid argument supplied for foreach() in 
/home/medicom/public_html/memberappform1.php on line 492 

我不是伟大的PHP所以需要一种方法来在循环,如果不返回任何没有勾选。

回答

2
if(is_array($_SESSION['CheckboxGroup1'])){ 
    foreach ($_SESSION['CheckboxGroup1'] as $val) { 
     $checkbox1results .= $val.",\n"; 
    } 
} 
1
if(isset($_SESSION['CheckboxGroup1'])){  // add && is_array($_SESSION['CheckboxGroup1']) to check its an array or not 
    foreach ($_SESSION['CheckboxGroup1'] as $val) { 
    $checkbox1results .= $val.",\n"; 
    } 
} 
0

尝试的var_dump()会话,看看里面有什么:)最有可能的值设置,但不是一个数组,所以你可以使用is_array()函数来检查你的价值

0

只是用...

if(isset($_SESSION['CheckboxGroup1'])){ 
    foreach ($_SESSION['CheckboxGroup1'] as $val) { 
    $checkbox1results .= $val.",\n"; 
    } 
} 
0

你必须检查复选框isset,因为空复选框不提交值

if(isset($_SESSION['CheckboxGroup1']) { 
    foreach($_SESSION['CheckboxGroup1'] as $val) { 
     $checkbox1result .= $val.", \n"; 
    } 
} 
-1

只需验证if语句?

foreach ($_SESSION['CheckboxGroup1'] as $val) { 
if ($val !==""){ 
$checkbox1results .= $val.",\n"; 
} else { 
echo "Please tick an option"; 
} 
+0

-1,考虑到它仍然会抛出一个错误,并且CheckboxGroup1没有被设置/不是一个要循环的数组。所以他试图避免的错误仍然会出现。 – 2011-03-04 16:13:30

相关问题