PHP:
if (isset($_POST['checkbox'])){
foreach ($_POST['checkbox'] as $x){
array_push($arr, judgeNametoID($x));
}
}
I’ve been getting errors when there’s only one checkbox selected. If I keep the isset() in there, I don’t get errors, only the checkbox selected is not added to the array.
Why is $_POST[‘checkbox’] not getting set if there’s only one checkbox selected?
PHP/HTML of page with the checkboxes:
echo '<ul>';
$list = getActiveJudges();
foreach ($list as $x){
$found = 0;
foreach ($arr as $y){
if ($x == $y){
$found = 1;
break;
}
}
if ($found==1){
echo '<li>';
array_push($selectedJudges, judgeNametoID($x));
echo '<input type="checkbox" checked="checked" name="checkbox[]" value="'.$x.'" />'.$x.'<br/>';
echo '</li>';
}
else {
echo '<li>';
echo '<input type="checkbox" named="unchecked[]" value="'.$x.'" />'.$x.'<br/>';
echo '</li>';
}
}
echo '</ul>';
Errors when I remove the isset():
Notice: Undefined index: checkbox in c:\Inetpub\wwwroot\CaseManagement\changeuserjudgeprocess.php on line 11
Warning: Invalid argument supplied for foreach() in c:\Inetpub\wwwroot\CaseManagement\changeuserjudgeprocess.php on line 14
Is the input name actually checkbox?
If you want to iterate through a list of checkboxes, you’ll need html like this
But that doesn’t help very much as you won’t know which checkbox was checked, so you could try something like
and then loop through like so:
Of course, you may already have html like this, if so, we’ll need to see it in order to help more 🙂