输入 form_helper 的 Codeigniter 下拉表单是 index/key 而不是所选值
Codeigniter dropdown form with form_helper input is index/key instead of the value selected
我是 codeigniter 的新手,正在尝试使用表单助手制作下拉菜单。我已经制作了常规输入表单,但现在我想从我的数据库中检索选项来填充我的下拉列表。似乎我已经完成了大部分工作(如果我将输入设为常规文本字段,我可以进行更改),但是当我尝试 运行 我的更新功能时,我得到了一个数据库错误,因为出于某种原因我获取选择的 index/key 而不是我尝试用于更新数据库的实际值(我还尝试使用 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。
也许我错过了一个简单的步骤?非常感谢您的帮助!
将名称设置为数组的索引。试试 -
foreach($level_options->result() as $row)
{
$options[$row->stage_name] = $row->stage_name;
}
我是 codeigniter 的新手,正在尝试使用表单助手制作下拉菜单。我已经制作了常规输入表单,但现在我想从我的数据库中检索选项来填充我的下拉列表。似乎我已经完成了大部分工作(如果我将输入设为常规文本字段,我可以进行更改),但是当我尝试 运行 我的更新功能时,我得到了一个数据库错误,因为出于某种原因我获取选择的 index/key 而不是我尝试用于更新数据库的实际值(我还尝试使用 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。
也许我错过了一个简单的步骤?非常感谢您的帮助!
将名称设置为数组的索引。试试 -
foreach($level_options->result() as $row)
{
$options[$row->stage_name] = $row->stage_name;
}