如何在 CodeIgniter 表单中正确显示已选中的下拉选项

发布时间 - 2025-12-26 00:00:00    点击率:

在 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() 转换)。

正确比对来源数据与当前值,是实现“智能默认选中”的核心——既提升用户体验,也保障表单数据一致性。


# php  # html  # lsp  # xss  # echo  # 运算符  # 三元运算符  # if  # 关联数组  # 循环  # this  # 数据库  # 表单  # 数据库中  # 院系  # 比对  # 进阶  # 器中  # 第一个  # 是从  # 而非  # 更强 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  Linux安全能力提升路径_长期防护思维说明【指导】  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  Laravel如何实现API速率限制?(Rate Limiting教程)  详解jQuery停止动画——stop()方法的使用  *服务器网站为何频现安全漏洞?  如何获取上海专业网站定制建站电话?  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  在线教育网站制作平台,山西立德教育官网?  海南网站制作公司有哪些,海口网是哪家的?  如何在香港免费服务器上快速搭建网站?  如何在搬瓦工VPS快速搭建网站?  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  网站制作大概多少钱一个,做一个平台网站大概多少钱?  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  公司网站制作需要多少钱,找人做公司网站需要多少钱?  详解Android图表 MPAndroidChart折线图  如何在云主机上快速搭建网站?  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  如何快速生成可下载的建站源码工具?  太平洋网站制作公司,网络用语太平洋是什么意思?  Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  如何用PHP工具快速搭建高效网站?  动图在线制作网站有哪些,滑动动图图集怎么做?  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  SQL查询语句优化的实用方法总结  简单实现Android文件上传  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  如何快速上传建站程序避免常见错误?  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  Laravel如何记录自定义日志?(Log频道配置)  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  Java遍历集合的三种方式  如何快速搭建安全的FTP站点?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  如何在阿里云服务器自主搭建网站?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  如何快速上传自定义模板至建站之星?  Android okhttputils现在进度显示实例代码  如何在不使用负向后查找的情况下匹配特定条件前的换行符  JavaScript常见的五种数组去重的方式