2013-01-22 37 views
1
同一頁

另一個問題上顯示再次就笨,這裏一些細節錯誤消息:

視圖頁面:

<?php if (isset($error)){echo $error; } ?> 
<form action="<?php echo site_url('mem_posting/post');>" method="post"> 
<input type="text" name="fname"> 
some fields goes here... 
</form> 

控制器頁面(mem_posting):

public function post_form() 
{ 
$this->load->view('header'); 
$this->load->view(form_page); 
} 

public function post() 
{ 
    $post_data=array( 
    'mem_id'=>$this->input->post('mem_id'), 
    //other inputs... 
    ) 
    $this->load->model('member_model'); 
    if ($this->member_model->check_member($post_data)===true) 
    { 

    //row exist 
    // **i would like to load the same page but 
    // **with error message "like already exist". 

    }else{ 
     $this->member_model->inset_member($post_data); 
    } 
} 

模型頁:

public function insert_member($post_data=array()) 
{ 
extract($post_data); 
$this->db->where('member_id', $member_id); 
$this->db->insert('membership', $post_data); 

} 

public function check_member($post_data=array()) 
{ 
    extract($post_data); 
    $this->db->select('mem_id'); 
    $this->db->where('mem_id', $mem_id); 
    $query = $this->db->get('membership'); 

    if ($query->num_rows() > 0){ 
     return true;    
    }else{ 
     return false; 
    } 
} 

你可以看到視圖頁面包含表單,現在我想實現的是回顯「已存在」的錯誤,所以我不必編碼另一個$ this-> load-> view('post_form') if語句。

預先感謝您..

回答

2

你的意思是隻發送一個變量來看待?

$data['error'] = "error message"; 
$this->load->view('some/view', $data); 
0

好吧!當你的表單被冒充時,你可以運行驗證。所以,想象你有2個領域submited。這將是這樣的:

$this->form_validation->set_rules('name', 'Name', 'required|trim|xss_clean'); 
$this->form_validation->set_rules('mem_id', 'ID Member', 'required|trim|is_unique[yourtable.mem_id]|xss_clean'); 
    if ($this->form_validation->run()){ 
     // Do your cool stuff now because validation passed 
    }else{ 
     // Whatever...validation fails, load your view. 
    } 

那麼在你看來,你建議立即進行刪除在窗體的頂部有事端這樣的:

<?php echo validation_errors(); ?> 

is_unique [yourtable.mem_id]將驗證如果輸入的獨特之處你的數據庫。所以如果真的很獨特,那就OK。

+0

嗨約翰,我想驗證的是,如果行存在,如果行存在,我想加載相同的頁面,其中包含的形式,但與錯誤消息, – swordfish

+0

再次嗨!對不起,我的英文,不是我的母語,但如果我沒有誤解你的話......你提交一個表單,並驗證是否沒有該行的數據,例如避免有2行使用相同的用戶名(例如) 。是這樣的,我發佈的代碼將幫助你,is_unique [table.field]檢查,如果有一行數據,它會自動顯示錯誤。所以如果用戶提交一個新的用戶名,它會通過並做任何你想做的事情,但是...如果用戶名存在.... BOOM! –