You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP编辑页已关联分类checkbox默认选中仅单条生效怎么解决?

问题根因
  • 你当前代码只拿单个$crow变量和全部分类做匹配,没有遍历存储了用户所有已绑定分类的$crows数组,因此只能命中1条分类,其余已绑定分类无法匹配成功。
  • 补充优化提醒:现有checkbox的name属性设置为category,未加数组标识[],后续表单提交时服务端只会接收到最后一个选中的分类值,需要同步修正。
修复代码

建议先将已绑定分类的ID提取为一维数组,直接用in_array判断即可,执行效率更高,也能避免分类重名导致的匹配错误:

$rows = $util->get_all_categories();
$crows = $util->get_categories_by_user_id($id);

// 预处理已绑定分类ID为一维数组
$bindedCategoryIds = array_column($crows, 'ID');

if($rows) {
    foreach ($rows as $row) {
        $checked = in_array($row['ID'], $bindedCategoryIds) ? 'checked' : '';
        // name属性加[]支持提交多选中的分类值
        echo '<label class="block"><input type="checkbox" name="category[]" '.$checked.' value="' . $row['ID'] . '"> ' . $row['name'] . '</label>';
        echo '<br>';
    }
}
?>

内容的提问来源于stack exchange,提问作者Meshael Abdullah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 21:42:03