【问题标题】:CodeIgniter : validation form not reset inputCodeIgniter:验证表单不重置输入
【发布时间】:2014-10-20 10:06:24
【问题描述】:

我希望我的问题没有错(对你来说并不容易)。言归正传...
我有带有验证的表单(检查数据库 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
{

此代码适用于出现消息“错误:没有 KTP sudah ada di data karyawan..!!!”但表单输入将被重置。所以我必须再次输入这个表格。

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

感谢您的宝贵时间

【问题讨论】:

    标签: php forms codeigniter


    【解决方案1】:

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

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

    希望对您有所帮助!
    继续编码
    战神。

    【讨论】:

      【解决方案2】:
      $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
      {
      

      【讨论】:

        【解决方案3】:

        也许最好的解决方案是加载包含表单的视图并传递所有 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 失败。以前错了,现在好了。

        【讨论】:

        • 它不会自己工作。当然,必须适应您的视图/控制器结构。
        猜你喜欢
        • 2013-01-25
        • 2015-10-12
        • 2016-09-06
        • 2013-09-20
        • 2013-02-17
        • 2013-05-13
        • 1970-01-01
        • 2013-03-17
        • 1970-01-01
        相关资源
        最近更新 更多