CodeIgniter-下拉菜单,将列表中的位置传递给数据库,而不是值


CodeIgniter - dropdown menu passing position in list to db rather than value

我正在使用Codeigniter编写一个小型应用程序,到目前为止遇到了一些问题!我有一个从数据库表中填充的下拉列表。下拉列表已填充并正确显示。但是,当我尝试将其内容(值)保存到新的数据库表时,它保存的是下拉列表中的位置,而不是显示的值。

视图中的部分表单:

    <?php echo form_open('manage/create_sold_vehicle_record'); ?>
    Registration Number
    <br>
    <?php echo form_dropdown('reg_no', $vehicle_list, 'large'); ?>

控制器的相关部分:

    function sell_vehicle()
    {
    $this->load->helper('form');
    $this->load->helper('url');
    $id = $this->uri->segment(3);
    $this->load->model('MVehicle','',TRUE);
    $this->load->model('manage_model','',TRUE);
    $vehicles_qry = $this->MVehicle->listSaleVehicles();
    $vehicle_list = array();
    foreach ($vehicles_qry->result() as $vehicle)
    {
        $vehicle_list[] = $vehicle->reg_no;
    }
    $data['vehicle_list'] = $vehicle_list;
    $data['main_content'] = 'sell_stock_vehicle';
    $this->load->view('includes/template', $data);  
    }

这是型号:

    function create_sold_vehicle_record()
    {

        $new_vehicle_insert_data = array(
            'reg_no' => $this->input->post('reg_no'), <-- This is saved to db, but is the position in dropdown list, not the value shown.
            'sold_by' => $this->input->post('staff'),
            'bought_by' => $this->input->post('customer'),
            'sale_price' => $this->input->post('sale_price'),
            'comm_rate' => $this->input->post('comm_rate'),
            'total_comm' => $this->input->post('total_comm'),
            'sale_date' => $this->input->post('date')
        );
        $insert = $this->db->insert('sold_vehicles', $new_vehicle_insert_data);
        return $insert;
    }

因此,它不是将"OU03XHC"保存为db中的reg_no值,而是保存"1"(或该值在下拉列表中的任何位置)。

$vehicle_list[]需要是关联数组

$vehicle_list = array();
foreach ($vehicles_qry->result() as $vehicle)
{
    $vehicle_list[$vehicle->reg_no] = $vehicle->reg_no;
}

现在form_dropdown()还会在下拉菜单html 中生成选项值(而不是0,1等)

更换

$vehicle_list = array();
 foreach ($vehicles_qry->result() as $vehicle)
 {
   $vehicle_list[] = $vehicle->reg_no;
 }

$vehicle_list = array();
  foreach ($vehicles_qry->result() as $vehicle)
  {
      $vehicle_list[$vehicle->reg_value] = $vehicle->reg_no;
  }

"$vehicle->reg_value"veriable是您希望存储在DB 中的值