从存储的记录中填充下拉列表


Populate a drop-down list from a stored record

我有一个来自硬编码数组的数据,该数组将进入下拉列表,然后添加到SQL数据库。我正在尝试编写一个函数来更新记录。在我的更新记录页面上,它将数据填充到表单字段中。然而,我不知道如何让下拉列表填充为该特定记录存储的内容。我使用的是CodeIgniter框架。有问题的下拉列表用于"列车方向"字段。

型号

public function edit_recrew()
{
    $this->db->where('train_id', $this->uri->segment(3));
    $query = $this->db->get('trains_road');
    return $query->result();
}
public function update_recrew($data)
{
    $this->db->where('train_id', $data['train_id']);
    $this->db->update('trains_road', $data);
}

视图

<?=
    form_open('atis/update_recrew');
    foreach ($record as $value) {
?>
        <input type="hidden" name="train_id" title="train_id" value="<?php echo $value->train_id; ?>">
        <tr>
            <td>Train Direction:</td>
            <?php
                $train_direction = array('.'$value->train_direction'.' => '.'$value->train_direction'.',
                    'North' => 'North',
                    'South' => 'South',
                    'East' => 'East',
                    'West' => 'West'
                );
            ?>
            <td><?= form_dropdown('txttrain_direction', $train_direction); ?></td>

控制器

public function update_recrew()
{
    $data = array(
        'train_id' => $this->input->post('train_id'),
        'train_no' => $this->input->post('train_no'),
        'train_location' => $this->input->post('train_location'),
        'train_symbol' => $this->input->post('train_symbol'),
        'train_direction' => $this->input->post('train_direction'),
        'train_hpt' => $this->input->post('train_hpt'),
        'train_crew' => $this->input->post('train_crew'),
        'train_status' => $this->input->post('train_status')
    );
    $this->load->model('atisroad_model');
    $this->atisroad_model->update_recrew($data);
    if ($this->db->affected_rows() > 0)
    {
        redirect(base_url() . 'atis/recrews');
    }
    else
    {
        echo 'failure';
    }

在调用form_dropdown()函数时,可以将当前值作为第三个参数传递。

$options = array(
    'small'  => 'Small Shirt',
    'med'    => 'Medium Shirt',
    'large'   => 'Large Shirt',
    'xlarge' => 'Extra Large Shirt'
);
echo form_dropdown('shirts', $options, 'large');

当呈现下拉列表时,将选择与第三个参数匹配的选项。

请参阅CodeIgniter表单帮助程序的文档