2013-12-19 4 views
0

Я использую codeigniter, и я пытаюсь передать идентификатор, но не удается.codeigniter pass a 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']. ''); для доступа к вашему параметру URL. У вас есть это в config.php? Стандартным соглашением для CI будет «site/resend_messages /» .$ row ['id'], а затем доступ к этому параметру через метод контроллера resend_messages ($ id). Все еще проверяйте свой код на наличие дополнительных проблем. – Zarathuztra

ответ

0

Вы никогда не передаете свой продукт вашему виду. Я не уверен, что настроено ваше сообщение об ошибках, и я не могу увидеть остальную часть вашей формы, поэтому я не знаю, почему вы не видите что-то, жалующееся на то, что продукт не существует в первую очередь. В любом случае, ваш контроллер должен, по крайней мере, сделать следующее:

$data['product'] = $product; 

Я также заметил это:

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

Я слышал разногласия по этому вопросу со стороны некоторых людей, но вы действительно не должны получать доступ к своей базе данных непосредственно с контроллеров.

Смежные вопросы