2013-06-04 47 views
1

我想添加表單驗證,如果ip_address重複只是 留在當前頁面或給我看任何類型的消息。需要添加表單驗證codeigniter

這是模式代碼

public function add_vote($option_id) 
    { 
     $this->db->insert($this->votes_table, array(
      'option_id' => $option_id, 
      'ip_address' => $this->input->ip_address(), 
      'timestamp' => time() 
     )); 

     return ($this->db->affected_rows() == 1) ? TRUE : FALSE; 
    } 

這是CONTROLER

public function vote($poll_id, $option_id) 
    { 
     if (! $this->poll_lib->vote($poll_id, $option_id)) 
     { 
      $data['base_styles'] = 'public_html/res/css/base.css'; 
      $data['title'] = 'Sorry an error occured'; 
      $data['error_message'] = $this->poll_lib->get_errors(); 
      $this->load->view('header'); 
      $this->load->view('www/posts/postclose', $data); 
     } 
     else 
     { 
      redirect('posts', 'refresh'); 
     } 
    } 

聽到的話,我添加新的投票是顯示我的數據庫錯誤的列是重複的,所以我不要我不想表明,如果它重定向到任何其他頁面將會很好,如果留在當前頁面仍然可用或彈出消息。

+0

任何一個........ –

回答

0

在插入數據庫之前進行檢查。

public function add_vote($option_id) 
    { 
     $query = $this->db->get_where($this->votes_table, array('ip_address' => $this->input->ip_address())); 

     if($query->num_rows() < 1) 

     { $this->db->insert($this->votes_table, array(
       'option_id' => $option_id, 
       'ip_address' => $this->input->ip_address(), 
       'timestamp' => time() 
      )); 

      return "Successfully Inserted"; 
     }else{ 
       return "Duplicate"; 
       } 
    } 

在你的控制器處理響應並相應地顯示

+0

親愛的約翰布雷克,我必須將它添加到我的模型爲u有編輯在這裏,但它在做同樣的因爲它是..在這裏,當我插入它讓我到數據庫錯誤,所以我不''希望用戶應該看到,只有當它被重複只是重定向到一個頁面或任何按摩。謝謝 –

+1

當你插入重複的時候,Duplicate是否與數據庫錯誤一起返回? –

+0

但你知道我想要在我的控制器或模型上,如果它是重複的,所以只要給我一個按摩,如表單驗證。 –