如何在 CodeIgniter 表单中正确显示已选中的下拉选项
技术百科
碧海醫心
发布时间:2025-12-26
浏览: 次 在 codeigniter 中编辑数据时,需让下拉菜单(`
在 CodeIgniter 的表单编辑场景中,常见错误是混淆“选项数据源”和“当前编辑记录”的变量。你提供的原始代码中:
该判断逻辑永远成立(每个 $row 自己等于自己),导致第一个选项始终被选中,无法真实反映数据库中存储的 jurusan 值。
✅ 正确做法是:在控制器中查询并传入当前待编辑的完整记录(例如 $data['data_form'] = $this->model->getById($id);),然后在视图中将 $row->id_jurusan 与 $data_form->id_jurusan 比较:
? 关键要点说明:
- ✅ $data_form->id_jurusan 是从数据库查出的当前记录值(如 3),代表用户上次保存的院系 ID;
- ✅ $row->id_jurusan 是循环中每个可选项的 ID(如 1, 2, 3, 4),用于匹配;
- ✅ 使用 htmlspecialchars() 对输出内容进行转义,防止 XSS 攻击;
- ✅ 推荐用三元运算符替代 if/echo,使模板更简洁、可读性更强;
- ✅ 确保控制器已正确传递数据,例如:
// 在控制器中(如 Admin_controller.php)
public function edit($id) {
$data['jurusan'] = $this->jurusan_model->get_all(); // 所有院系选项
$data['data_form'] = $this->form_model->getById($id); // 当前编辑的记录
$this->load->view('admin/form_edit', $data);
}? 进阶建议:
CodeIgniter 的 form_dropdown() 辅助函数可进一步简化逻辑(需配合数组格式数据):
id_jurusan, 'class="form-control" id="jurusan"'); ?>
其中 $jurusan_options 应为 id => nama_jurusan 形式的关联数组(可用 array_column() 转换)。
正确比对来源数据与当前值,是实现“
智能默认选中”的核心——既提升用户体验,也保障表单数据一致性。
# 第一个
# 数据库中
# 表单
# 进阶
# 是从
# 而非
# 更强
# 器中
# 循环
# if
# html
# 数据库
# this
# lsp
# php
# echo
# 比对
# 运算符
# xss
# 关联数组
# 三元运算符
# 院系
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- Win11如何设置文件权限 Win11 NTFS文
- 企业SEO优化选择网站建设模板的技巧
- Win11怎么设置开机密码_Windows11账户
- php本地部署后session无法保存_sessi
- Windows任务计划服务异常原因_任务调度失败的
- Win11怎么查看硬盘型号_Windows 11检
- Win11怎么关闭自动调节亮度_Windows11
- mac怎么安装adb_MAC配置Android A
- Win11怎么更改文件夹图标_自定义Win11文件
- Win10怎么卸载鲁大师_Win10彻底卸载鲁大师
- Win11怎么设置ipv4地址_Windows 1
- Win11怎么检查TPM2.0模块_Windows
- c++中的std::conjunction和std
- Win11怎么设置桌面图标间距_Windows11
- Win10系统怎么查看显卡温度_Win10任务管理
- 如何在Golang中实现微服务负载均衡_Golan
- C++中的constexpr和const有什么区别
- Win11怎么激活Windows10_Win11激
- Mac如何整理桌面文件_Mac使用堆栈功能一键整理
- Win11开始菜单打不开_修复Windows 11
- Win10怎么卸载爱奇艺_Win10彻底卸载爱奇艺
- 如何使用Golang操作指针变量_Golang解引
- Win11怎么开启剪贴板历史记录_Windows1
- Win11如何设置ipv6 Win11开启IPv6
- Win11时间不对怎么同步_Win11自动校准互联
- 如何在 PHP 单元测试中正确模拟带方法的图像处理
- 新手学PHP架构总混淆概念咋办_重点梳理【教程】
- MAC怎么使用表情符号面板_MAC Emoji快捷
- Win11屏幕亮度突然变暗怎么解决_自动变暗问题处
- php订单日志怎么在swoole写_php协程sw
- Win11怎么关闭任务栏小图标_Windows11
- 如何在Mac上搭建Golang开发环境_使用Hom
- Python与MongoDB NoSQL开发实战_
- PyTorch DDP 多进程训练在 Kaggle
- Win11怎么关闭SmartScreen_禁用Wi
- Win11怎么开启窗口对齐助手_Windows11
- c++怎么编写动态链接库dll_c++ __dec
- Win11怎么设置默认输入法 Win11固定中文输
- Win11怎么设置屏保时间_调整Win11屏幕保护
- Python网络异常模拟_测试说明【指导】
- 如何在Golang中处理模块冲突_解决依赖版本不兼
- Go 中实现 Python urllib.quot
- php订单日志权限怎么设_php订单日志文件权限设
- 如何在Golang中处理模块包路径变化_Golan
- Windows10电脑怎么设置文件权限_Win10
- Win10怎么关闭自动更新错误弹窗_Win10策略
- 如何使用Golang反射将map转换为struct
- 如何在Golang中配置代码格式化工具_使用gof
- Windows10电脑怎么设置虚拟光驱_Win10
- Windows10系统怎么查看显卡驱动_Win10

QQ客服