PHP:
if (isset($_POST['checkbox'])){
foreach ($_POST['checkbox'] as $x){
array_push($arr, judgeNametoID($x));
}
}
当只选中一个复选框时,我一直在收到错误。如果我在那里保留isset(),我不会收到错误,只有选中的复选框没有添加到数组中。
如果只选中了一个复选框,为什么$ _POST ['复选框']没有设置?
带有复选框的页面的PHP / HTML:
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>';
删除isset()时的错误:
注意:未定义的索引:第11行的c:\ Inetpub \ wwwroot \ CaseManagement \ changeuserjudgeprocess.php中的复选框
警告:在第14行的c:\ Inetpub \ wwwroot \ CaseManagement \ changeuserjudgeprocess.php中为foreach()提供的参数无效
答案 0 :(得分:1)
输入名称实际上是复选框吗? 如果你想遍历一个复选框列表,你需要像这样的HTML
<input type="checkbox" name="checkbox[]">
<input type="checkbox" name="checkbox[]">
<input type="checkbox" name="checkbox[]">
但这并没有多大帮助,因为你不知道检查了哪个复选框,所以你可以尝试类似的东西
<input type="checkbox" name="checkbox[checkbox1]">
<input type="checkbox" name="checkbox[checkbox2]">
<input type="checkbox" name="checkbox[checkbox3]">
然后像这样循环:
if(isset($_POST['checkbox'])){
foreach($_POST['checkbox'] as $checkboxID => $checkboxVal){
// $checkboxID will be checkbox1, checkbox2, checkbox3 as specified above.
// $checkboxVal will always be 'on'
}
}
当然,您可能已经拥有这样的HTML,如果是这样,我们需要看到它才能提供更多帮助:)
答案 1 :(得分:1)
也许您选中的是名称'未选中[]'
的复选框顺便说一下,没有必要给未选中的复选框一个不同的名称。