确认codeigniter杂货店中的表单提交错误

时间:2015-10-19 07:32:36

标签: php codeigniter grocery-crud

当我点击后退按钮时,我收到了确认表单提交错误。如何防止此问题?请为此提供解决方案。 我正在尝试登录admi面板并在以下代码中使用admin进行编辑

 Admin controller:
        public function index()
        {

            $data = $this->data;
            $this->load->view('admin/login.php',$data);
        }
        public function login()
        {
            $data = $this->data;
            $username=$this->input->post("username");
            $password=$this->input->post("password");

            if($username=='admin'&&$password=='admin123')
            {

                $this->load->view('admin/home.php',$data);

            }
            else
            {
                $data['error']="Invalid Username or Password";
                $this->load->view('admin/login.php',$data);
            }
        }

        /* Function For Displaying the home page*/
        public function home()
        {

            $data = $this->data;
            $this->load->view('admin/index.php',$data);
        }
        /* Common Function for calling the View*/
        public function _admin_output($output = null)
        {
            $output->base=$this->config->item('base_url');
            $output->site=$this->config->item('site_url');
            $output->css=$this->config->item('css');
            $output->js=$this->config->item('js');
            $this->load->view('admin/home_page.php',$output,'refresh');

        }

            public function loadSlidingimg()
        {
            $crud = new grocery_CRUD();
            $crud->set_table('tbl_slideimg');
            $crud->columns('imgname','active');
            $crud->set_subject('Frontpage Sliding Images');
            $crud->display_as('imgname','Image name');
            $crud->set_field_upload('imgname','uploads');   
            $crud->display_as('active','Active Flag');
            $crud->callback_after_update(array($this,'rename_slideimg_db'));
            $crud->callback_after_insert(array($this,'rename_slideimg_db'));

            $output = $crud->render();
            $this->_admin_output($output);
        }
        }

请为此问题提供解决方案

2 个答案:

答案 0 :(得分:0)

这是因为将您带到该页面的操作是POST请求。浏览器希望能够避免无意中的双重订购/支付/随时随地退回"当加载该页面时需要再次发布表单。

如何解决这个问题?我通常会将用户重定向到由GET请求加载的页面,它甚至可以是同一页面,请参阅以下答案:https://stackoverflow.com/a/3968038/357403
或者,您可以修改历史记录:https://developer.mozilla.org/en-US/docs/Web/API/History_API

另外,请参阅PRG模式:https://en.wikipedia.org/wiki/Post/Redirect/Get

答案 1 :(得分:0)

尝试以下代码格式:

$this->load->view('admin/home.php', 'refresh', $data);

redirect('home', 'refresh');