Выпадающая форма Codeigniter с вводом form_helper — индекс / ключ вместо выбранного значения

Я новичок в codeigniter и пытаюсь сделать выпадающее меню с помощью помощника формы. Я сделал регулярные формы ввода, но теперь я хотел бы получить параметры из моей базы данных, чтобы заполнить мой раскрывающийся список. Казалось, что у меня была большая часть этой работы (если я делаю ввод обычным текстовым полем, я могу внести изменения), но когда я пытаюсь запустить свою функцию обновления, я получаю ошибку базы данных, потому что по какой-то причине я получаю индекс / ключ выбора, а не фактическое значение, которое я пытаюсь использовать для обновления базы данных (я также пытаюсь использовать jquery, чтобы динамически влиять на другое раскрывающееся меню, но пока еще не совсем …).

Моя часть моей формы, которая связана с этим вопросом:

echo form_label('Stage');
echo form_dropdown('stage_name', $stage_options, $stage[0]->stage_name,
'id=
stagesDrp"');

Мои модельные методы, которые связаны между собой:

function get_stage_options($id){
$this->db->select('stages.stage_name')->from('stages')-
>join('prices', 'prices.id=stages.price_id')-
>join('events','events.price_id=prices.id')->where('events.id', $id);
$stage_options=$this->db->get();
if($stage_options->num_rows()>0)
{
foreach($level_options->result() as $row)
{
$options[]=$row->stage_name;
}
return $options;
}

function update_stage($id){
$stage=array(
'stage_name'=>$this->input->post('stage_name')
);

$this->db->where('events.id', $id);
$this->db->update('stages', $stage_name);

}

Когда я пытаюсь отправить свою форму обновления, я получаю ошибку базы данных, потому что она пытается установить stage_name = значение индекса (то есть 0, 1, 2) на основе того, какой выбор сделан, а не равным фактическому stage_name.

Может быть, я пропускаю простой шаг? Я очень ценю помощь!

0

Решение

Установите имя в качестве индекса для массива. Попробуйте с —

foreach($level_options->result() as $row)
{
$options[$row->stage_name] = $row->stage_name;
}
1

Другие решения

Других решений пока нет …