0

私は codeigniter を初めて使用し、フォーム ヘルパーを使用してドロップダウンを作成しようとしています。通常の入力フォームを作成しましたが、データベースからオプションを取得してドロップダウンに入力したいと考えています。私はこの作業のほとんどを行っているように見えました (入力を通常のテキスト フィールドにすると、変更を加えることができます) が、更新関数を実行しようとすると、データベース エラーが発生します。これは、何らかの理由で index/データベースを更新するために使用しようとしている実際の値ではなく、選択のキーです(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 ではなく、どの選択が行われたかに基づいて、stage_name = インデックス値 (つまり、0、1、2) を設定しようとしているからです。

多分私は簡単なステップを逃していますか?本当に助かりました!

4

1 に答える 1

1

名前を配列のインデックスとして設定します。試してみてください -

foreach($level_options->result() as $row)
{
  $options[$row->stage_name] = $row->stage_name;
}
于 2015-04-13T08:17:34.277 に答える