CodeIgniter编辑页如何展示多选下拉框已选中值 选中值不显示怎么办
解决方案
核心问题说明
你使用row_array()查询assignuserstable只能获取单条记录,而多选场景下同一个user_id会对应多条关联记录,原有判断逻辑只能匹配到第一个选中值,无法满足多选需求。
具体修改步骤
1. 修改编辑页关联数据查询逻辑
将原有单条查询改为批量查询,提取所有已选中的管理员ID为一维数组:
<?php // 替换原有$assignuserstable查询代码 $assigned_admin_list = $this->db->get_where('assignuserstable',array('user_id'=>$user_id))->result_array(); $selected_admin_ids = array_column($assigned_admin_list, 'admin_id'); ?>
2. 修改下拉框选中判断逻辑
将原有单值相等判断改为数组包含判断:
<option value="<?php echo $row2['admin_id'];?>" <?php if(in_array($row2['admin_id'], $selected_admin_ids)) echo 'selected';?>> <?php echo $row2['first_name'];?> </option>
3. 修复模型层隐藏bug
你现有模型代码中$insertId = $this->db->insert_id缺少方法括号,会导致插入的关联数据user_id异常,修改为:
$insertId = $this->db->insert_id();
4. 适配selectpicker插件渲染(可选)
如果你使用的是bootstrap-select的selectpicker组件,需要在页面加载完成后手动刷新组件才能正常显示多选选中状态:
$(function(){ $('#admin_id').selectpicker('refresh'); });
内容的提问来源于stack exchange,提问作者dileep kp
相关产品推荐
相关产品推荐

