2016-09-16 35 views
0

我有一個這樣的算法:如何使用set_value但不使用form_validation set_rules?

if ($this->form_validation->run() == FALSE) { 
     $this->load->view('costs/v_addcontainer', $data); 
    } elseif ($check_valid_qty == "error" || $this->form_validation->run() == FALSE) { 
     $this->session->set_flashdata('qty_error', 'Quantity not valid!'); 
     redirect('Cost/add_container'); 
    } elseif ($check_data_selling > 0) { 
     $this->session->set_flashdata('data_exist', 'Data already exists!'); 
     redirect('Cost/add_container'); 
    } else{ 
     // insert data 
    } 

如果數據已經存在,系統會提示「數據已存在」,但我想以前的值的形式設置。我該如何解決?

回答

0

您應該在「失敗」情況下再次加載視圖,而不是重定向。

顯示「數據已存在」消息,因爲您將其設置爲flashdata,該數據將保留在重定向中,但其他所有內容基本上都已丟失,因此如果要使用set_value()重新填充表單,則需要在當前請求中顯示它。

這也意味着你不需要混淆會話數據,只能正常傳遞你的警報消息。

if ($this->form_validation->run() == FALSE) { 
    $this->load->view('costs/v_addcontainer', $data); 
} elseif ($check_valid_qty == "error") { 
    $data['qty_error'] = 'Quantity not valid!'; 
    $this->load->view('costs/v_addcontainer', $data); 
} elseif ($check_data_selling > 0) { 
    $data['data_exist'] = 'Data already exists!'; 
    $this->load->view('costs/v_addcontainer', $data); 
} else{ 
    // insert data 
} 

理想的情況是,你應該尋找彌補表單驗證回調的文件,因爲他們會允許您將額外的規則,沒有必要在這裏額外的邏輯送入表單驗證類。

+0

感謝您的回答 – Four

相關問題