2014-10-20 133 views
0

我希望我的問題沒有錯(對你不容易)。到點...
我有形式與驗證(檢查數據庫MySQL)。這樣

控制器CodeIgniter:驗證表單不重置輸入

$ck['no_ktp'] = $this->input->post('no_ktp'); 
$cek = $this->app_model->getSelectedData("biodata_karyawan",$ck); 
if($cek->num_rows()>0) 
{ 
    $this->session->set_flashdata('flash_messages', 'ERROR : No KTP sudah ada di data karyawan..!!!'); 
    redirect(base_url() . 'karyawan/tambah/' . $site);      
} 
else 
{ 

這個代碼是出現消息的工作 '錯誤:未KTP sudah ADA迪數據karyawan .. !!!'但表單輸入將被重置。所以我必須再次輸入這個表單。

問題
如何仍然出現的消息,但字段沒有重置?

之前感謝您的時間

回答

0

發生這種情況是因爲重定向。基本上,它重新加載頁面。你可以做什麼,是在表單驗證之後,將輸入的值放入會話變量中。如果表單被正確驗證並且沒有錯誤出現,那麼取消設置會話變量,否則,重定向並且在視圖頁上,默認情況下,在每個輸入中,放置你在會話中的變量var。有點像這樣:

echo '<input type="text" name="some_name" value="'.(isset($_SESSION['some_name']) ? $_SESSION['some_name'] : '').'" />

希望它能幫助!
繼續編碼
阿瑞斯。

0

也許最好的解決辦法是載入包含的形式和通過所有陣列後重新加載輸入的視圖。

$ck['no_ktp'] = $this->input->post('no_ktp'); 
$cek = $this->app_model->getSelectedData("biodata_karyawan",$ck); 
if($cek->num_rows()>0) 
{ 
    $this->session->set_flashdata('flash_messages', 'ERROR : No KTP sudah ada di data karyawan..!!!'); 
    //redirect(base_url() . 'karyawan/tambah/' . $site); 
    $data['form_contents'] = $this->input->post(); 
    $this->load->view('form_view', $data); 
} 
else 
{ 

,然後再在表單視圖,負載輸入呼籲:

<input type="text" name="whatever" value="<?php echo $form_contents['whatever'];?>" /> 

希望這有助於。

編輯1:我的失敗命名$ form_contents在視圖和控制器。以前是錯的,現在沒問題。

+0

對不起以上代碼無法正常工作 – 2014-10-20 10:19:14

+0

它不會自行工作。當然,必須適應你的視圖/控制器結構。 – 2014-10-20 10:26:07

0
$ck['no_ktp'] = $this->input->post('no_ktp'); 
$cek = $this->app_model->getSelectedData("biodata_karyawan",$ck); 
if($cek->num_rows()>0) 
{ 
    $this->session->set_flashdata('flash_messages', 'ERROR : No KTP sudah ada di data karyawan..!!!'); 
    redirect(base_url() . 'karyawan/tambah/' . $site);  
    exit;    
} 
else 
{ 
+0

對不起,退出無法正常工作 – 2014-10-20 10:18:23