Php 通过页面刷新删除表单验证错误

Php 通过页面刷新删除表单验证错误,php,forms,codeigniter,validation,Php,Forms,Codeigniter,Validation,我有一个接受表单输入的页面,它是使用HTML和PHP(codeignter framework)编写的,我面临的问题是当出现表单验证错误时,页面刷新不会像全新的一样重新加载页面,我的意思是,它没有清除字段中的输入,页面刷新时仍然会出现错误消息,甚至在我更正输入并点击提交之后,当我单击浏览器后退按钮时,它仍然会加载带有验证错误的页面。。 知道为什么会发生或如何解决吗。我只需要在刷新页面时重新加载它 这是我的视图(view1.php) 控制器功能 函数索引(){ $this->load->view

我有一个接受表单输入的页面,它是使用HTML和PHP(codeignter framework)编写的,我面临的问题是当出现表单验证错误时,页面刷新不会像全新的一样重新加载页面,我的意思是,它没有清除字段中的输入,页面刷新时仍然会出现错误消息,甚至在我更正输入并点击提交之后,当我单击浏览器后退按钮时,它仍然会加载带有验证错误的页面。。 知道为什么会发生或如何解决吗。我只需要在刷新页面时重新加载它

这是我的视图(view1.php)


控制器功能
函数索引(){
$this->load->view('view1');
}
函数搜索{
如果($this->input->post('submit')){
$this->form\u validation->set\u规则('input1','XXXX',
“修剪|一些|验证”);
$this->form\u validation->set\u规则('input2','XXXX',
“修剪|一些|验证”);
$this->form\u validation->set\u规则('input3','XXXX',
“修剪|一些|验证”);
如果($this->form\u validation->run()==FALSE){
//当验证失败时
$this->load->view('view1');
}否则{
//成功验证所有输入时
做一些处理,
//加载其他视图
$this->load->view('view2');
}
}否则{
//当页面刷新时,这应该是重定向
重定向(“搜索控制器/索引”);
}       
}
当输入验证失败时,url返回为www.something.com/search/search\u fn,当我刷新时,它基本上加载了带有相同错误消息的同一页面。不知何故,我需要重置 $this->input->post('search'),因此只有在单击搜索按钮时才为真


谢谢。

您在处理表单后是否使用CodeIgniter的
重定向()
功能?您应该始终这样做

我的意思是,在处理完提交的数据后,即使您希望它们位于同一页上,也不要返回TRUE或简单地关闭函数,而是返回一个简单的
重定向('CONTROLLER_NAME');


至于字段,我建议在输入
中使用autocomplete=“off”(如果您没有使用上面的,因为在这种情况下,Chrome和下一版本的Firefox将忽略autocomplete=“off”)

欢迎来到Stack Overflow!这个问题的信息有点少。你能分享一下你尝试了什么,遇到了什么问题吗?如果你不发布一个你遇到问题的代码示例,几乎不可能帮到你。记住,IE和其他浏览器保存状态(真烦人)即使在页面刷新后,也会将数据保留在表单中。不知道这是否与您的问题有关。感谢您的回复。如果我添加重定向,页面将被重定向到我在重定向中提供的新url。我已更新了我的问题以使其更清晰。@PREDDY我的意思是在提交表单时使用重定向,而不是在页面被重定向时使用重定向shed!例如,使用重定向('CONTROLLER_NAME')更改
$this->load->view('view2');
,如果重定向后需要显示任何消息,请使用Codeigniter
flash data
,也可以使用
表单输入('input1',设置值('input1'),'autocomplete=“off')更改输入。
再次感谢Ara.“view2”应该加载从数据库获取的1000个结果,因此我无法使用flash数据将输出传递到视图。此外,我尝试使用“autocomplete=“off”,但由于某些原因,它不适用于输入type=“text”字段。对此有何想法?