如何在提交后清除表单数据?

时间:2014-01-27 09:00:40

标签: php forms codeigniter

我在CodeIgniter网站上有一个带有文件输入的表单。当我填写表单并单击提交按钮时,它工作正常。但是,当我刷新浏览器时,会再次上载相同的表单数据。我该如何防止这种情况?

输入表格

<form name="image_upload" action="<?= base_url() ?>admin/image_move_upload" method="post" accept-charset="utf-8" enctype="multipart/form-data">  
    <ul>  
        <li class="ui-field"><label for="filename">File Name :</label></li>
        <li class="ui-input"><input type="text"  name="filename" placeholder=""></li>  
        <li class="ui-field"><label for="file">Image( *only .jpg) :</label></li> 
        <li class="ui-input"><input type="file" name="imagefile" value="" placeholder="" required=""></li>  
        <li><input type="submit"  name="Upload" class="ui-submit"></li>  
    </ul>  
</form>

控制器部分

function image_move_upload() {
    $data['errors'] = NULL;
    $data['success'] = NULL;

    if (isset( $_POST['Upload'] )) {
      $config_arr = array(
            'upload_path' => './uploads/slider/',
            'allowed_types' => 'jpg',
            'max_size' => '2048',
            'max_width' => '1024',
            'max_height' => '768',
            'encrypt_name' => true,
            'file_name'  => 'sanji.jpg',
        );
        $this->load->library('upload', $config_arr);
        if (!$this->upload->do_upload('imagefile')) {
            $data['errors'] = $this->upload->display_errors(); // this isn't working                
        } else {
            $data['qs'] = $this->upload->data();
            $data['success'] = "File Uploaded Successfully";
        }         
    }

    $data['main_content'] = 'admin/upload';
    $this->load->view('admin_layout', $data);
}

3 个答案:

答案 0 :(得分:2)

使用发布/重定向/获取模式。 http://en.wikipedia.org/wiki/Post/Redirect/Get

答案 1 :(得分:1)

通过刷新重定向到同一个控制器。使用以下代码。

redirect('admin/image_move_upload', 'refresh');

答案 2 :(得分:0)

使用重定向函数而不是调用同一类的函数。

所以,使用redirect('admin/image_move_upload', 'refresh');