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

如何在视图中展示数据库中状态为Active的科目下拉列表?

实现仅显示Active状态科目的下拉列表(CodeIgniter)

看起来你用的是CodeIgniter框架对吧?要实现这个需求,咱们需要从模型层查询过滤数据、控制器传递数据到视图、视图渲染下拉列表这三步来完成:

1. 创建/修改模型(获取Active状态的科目)

首先需要一个模型来处理数据库查询,新建或在现有模型里添加专门获取Active状态科目的方法:

// application/models/Subject_model.php
class Subject_model extends CI_Model {
    public function __construct() {
        parent::__construct();
        $this->load->database(); // 加载数据库类
    }

    // 获取所有状态为Active的科目
    public function get_active_subjects() {
        $this->db->where('status', 'Active'); // 筛选状态为Active的记录
        $query = $this->db->get('subjects'); // 替换为你的实际表名
        return $query->result_array(); // 返回结果数组供视图使用
    }
}

2. 修改控制器(传递数据到视图)

在控制器里加载模型,调用方法获取数据后传递给视图:

// 你的控制器文件(比如Welcome.php)
public function subject() {
    $this->load->model('Subject_model'); // 加载模型
    // 获取Active科目数据并赋值给$data数组
    $data['active_subjects'] = $this->Subject_model->get_active_subjects();
    // 将数据传递给sub视图
    $this->load->view('sub', $data);
}

3. 修改视图(渲染下拉列表)

在sub.php视图里,循环遍历传递来的数据生成下拉选项:

<!-- application/views/sub.php -->
<select name="subject_id">
    <!-- 可选:添加默认提示选项 -->
    <option value="">请选择科目</option>
    <?php foreach($active_subjects as $subject): ?>
        <option value="<?php echo $subject['id']; ?>">
            <?php echo $subject['name']; ?> <!-- 替换为你的科目名字段名 -->
        </option>
    <?php endforeach; ?>
</select>

额外提示:

  • 记得替换代码中的subjects表名、name字段名为你实际数据库的对应名称
  • 如果不想每次手动加载模型,可以在application/config/autoload.php的$autoload['model']数组里添加'Subject_model'实现自动加载

内容的提问来源于stack exchange,提问作者rashmi ag

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:06:13