2014-10-20 135 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