php - 带有 form_helper 输入的 Codeigniter 下拉表单是索引/键而不是所选的值

标签 php mysql codeigniter 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。

也许我错过了一个简单的步骤?我非常感谢您的帮助!

最佳答案

将名称设置为数组的索引。尝试使用 -

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

关于php - 带有 form_helper 输入的 Codeigniter 下拉表单是索引/键而不是所选的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29600716/

相关文章:

mysql - 从两个 MySQL 表中选择

php - 如何在更新 MySQL 记录时不包含空白字段

php - 在搜索结果中显示 2 列中 1 个表的信息。 (PHP-拉拉维尔)

php - PHP和XPath查询

php - 使用属性定位xml节点,然后使用simpleXML返回不同属性的值

php - php codeigniter中的多维数组

php - 使用 CodeIgniter 将图像上传到我的数据库

php - getElementById().value 什么都不返回

php - SQLSTATE[HY000] : General error in Yii2 , 创建命令

javascript - 使用 JQUERY、AJAX 和 PHP 填充选择框