0

フォーム フィールドを codeigniter で編集しようとしています。送信された値は最初にビューに表示され、次に情報が編集されます。しかし、フォームを送信すると、次のエラーが発生します

PHP エラーが発生しました

重大度: 通知

メッセージ: 未定義のオフセット: 0

ファイル名: views/tupdate.php

ライン番号: 46

46行目で私は持っています

 <input type="hidden" name="id" value="<?php echo $info[0]->id  ?>">

私のコントローラー:

 function update($id = 0)
 {
   $data['info'] = $this->trainingUpdate_model->getdata_by_id($id);

   $this->load->view('tupdate', $data);
 }


function super()
{
    $id=$this->input->post('id');
    $data['title']=$this->input->post('title');
    $data['training_description']=$this->input->post('training_description');

    if ($this->trainingUpdate_model->update($id, $data)==TRUE)
    {
      $this->load->view('traing_update_success');
    }
    else
    {
      $this->load->view('S_unsuccess');
    }
}

私のモデル:

 function getdata_by_id($id = 0)
 {
    $this->db->where('id',$id);
    $sql = $this->db->get('training');
    return $sql->result();
 }


 function update($id,$data)
 {
   $this->db->where('id', $id);
   $this->db->update('training', $data);

   if ($this->db->affected_rows() == '1')
   {
     return TRUE;
   }
   return FALSE;
 }

そして見る:

 <form action="trainingUpdate/super" method="post">

   <input type="hidden" name="id" value="<?php echo $info[0]->id  ?>">
   Title Name:<input type="text" name="id" value="<?php echo htmlspecialchars($info[0]->title) ?>">
   Title Name: <textarea type="text" name="overview" value=""><?php echo $info[0]->training_description; ?></textarea>

   <input type="Submit" value="Update">
</form>

情報が更新されない理由と、そのエラーが発生する理由がわかりました。

助けてください。ありがとう

何らかの理由で、送信されたデータがモデルに渡される場所から、送信された値が trainingUpdate/super() メソッドに取得されません。from が同じビュー ページに戻り、エラーが発生します。なぜそれが起こっているのか誰か教えてもらえますか?? 再度、感謝します。

4

1 に答える 1

1

レコードを更新するために 1 つの行のみを取得する場合は、row() メソッドのみを使用してレコードのみを取得します

モデル

function getdata_by_id($id = 0)
 {
    $this->db->where('id',$id);
    $sql = $this->db->get('training');
    //return $sql->result();
    return $sql->row();
 }

見る

 <input type="hidden" name="id" value="<?php echo $info->id  ?>">
于 2013-07-19T22:54:22.060 に答える