2013-12-19 34 views
0

我使用codeigniter,我想通過一個ID,但沒有成功。codeigniter通過一個ID

這裏是控制器:

function resend_messages() { 
    if($this->input->post('send')) { 
     if(!$this->input->post('text')) { 
      $data['output'] = 'Please Write a message'; 
     } 
     else { 
      $this->load->model('site_model'); 
      $product = $this->site_model->resend($this->input->post('id')); 
      $insert = array(
       'sender' => $this->session->userdata('username'), 
       'receiver' => $product->sender, 
       'content' => $this->input->post('text') 
      ); 
      $this->db->insert('messages',$insert); 
      $data['output'] = 'The message send successfully'; 
      //redirect('site/my_message'); 
     } 
     $this->load->view('resend_message',$data); 
    } 

} 

這裏是視圖:

foreach($product as $row) { 
      print "<li><b>From:</b>{$row['receiver']}</li> 
       <li><b>To:</b>{$row['sender']}</li> 
       <li><b>Content:</b>{$row['content']}</li> 
       <li><b>Date:</b>{$row['date']}</li>"; 
      print form_open('site/resend_messages'); 
      print $row['id']; 
      print form_hidden('id', $row['id']); 
      print form_submit('send', 'Resend message'); 
      print form_close(); 
      print "<hr />"; 
     } 

這裏是模型:

function resend($id) { 
    $results = $this->db->get_where('users', array('id' => $id))->result(); 
    return $results; 
} 

所以我想一些幫助。

+0

在你的視圖中調用$ this-> input-> post()應該引發錯誤... – Zarathuztra

+0

從窗體隱藏。 看看當前的視圖。 – user3119925

+0

您正在使用print form_open('site/resend_messages?act ='。$ row ['id']。'');訪問您的網址參數。你在config.php中啓用了這個功能嗎? CI的標準約定是'site/resend_messages /'。$ row ['id'],然後通過控制器方法resend_messages($ id)訪問該參數。仍然檢查您的代碼以獲取更多問題。 – Zarathuztra

回答

0

你從來沒有真正將你的產品傳遞給你的觀點。我不確定您的錯誤報告設置爲何,也無法看到表單的其餘部分,因此我不知道爲什麼您沒有看到抱怨不存在的美元產品。在任何情況下,你的控制器需要至少做到以下幾點:

$data['product'] = $product; 

我也注意到了這一點:

$this->db->insert('messages',$insert); 

我聽說分歧在這一些人,但你真的不應該直接從您的控制器訪問您的數據庫。