CodeIgniter:验证表单未重置输入

时间:2014-10-20 10:06:25

标签: php forms codeigniter

我希望我的问题没有错(对你来说不容易)。到了这一步...... 我有验证表格(检查数据库MySQL)。像这样

控制器

$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
{

此代码适用于显示的消息' ERROR:No KTP sudah ada di data karyawan .. !!!'但表格输入将被重置。所以我必须再次输入这个表格。

问题
如何仍然显示消息但字段未重置?

感谢您的时间

3 个答案:

答案 0 :(得分:0)

也许最好的解决方案是加载包含表单的视图并传递所有post数组以重新加载输入。

$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失败。以前是错的,现在还可以。

答案 1 :(得分: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
{

答案 2 :(得分:0)

这是因为重定向。基本上,它重新加载页面。您可以做的是,在验证表单之后,将输入的值放在会话变量中。如果表单已正确验证且没有出现错误,则取消设置会话变量,否则,重定向并在视图页面上,默认情况下,在每个输入中放置您在会话var中的内容。有点像这样:

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

希望它有所帮助!
继续编码
顷。