我有一个页面,它采用表单输入,它是使用HTML和PHP(codeignter框架)编写的,我遇到的问题是当有表单验证错误时,页面刷新不会像新的一样重新加载页面,我的意思是它没有清除字段的输入和错误消息仍然出现在页面刷新,甚至在我更正输入并点击提交后,当我点击浏览器后退按钮时它仍然加载页面验证错误.. 知道为什么会发生或如何解决它。我刷新它时只需要重新加载页面。
这是我的观点(view1.php)
<html>
<?php
echo validation_errors();
form_open('search_controller/search_fn');
form_input('input1', set_value('input1'));
form_input('input2', set_value('input2'));
form_input('input3', set_value('input3'));
form_submit('submit', 'Submit');
?>
</html>
Controller Functions
function index() {
$this->load->view('view1');
}
function search_fn {
if($this->input->post('submit') {
$this->form_validation->set_rules('input1', 'XXXX',
'trim|some_validation');
$this->form_validation->set_rules('input2', 'XXXX',
'trim|some_validation');
$this->form_validation->set_rules('input3', 'XXXX',
'trim|some_validation');
if($this->form_validation->run() == FALSE) {
//when validation fails
$this->load->view('view1');
} else {
//when all input is validated sucessfully
do some processlisng,
//load some other view
$this->load->view('view2');
}
} else {
//When page is refreshed, this is supposed to redirect
redirect('search_controller/index');
}
}
当输入验证失败时,网址会返回www.something.com/search/search_fn,当我刷新时,它基本上会加载相同的页面并显示相同的错误消息。不知何故,我需要重置 $ this-&gt; input-&gt; post(&#39; search&#39;),只有在点击搜索按钮时才会成立。
感谢。
答案 0 :(得分:0)
您在处理表单后使用的是CodeIgniter的redirect()
函数吗?你应该总是这样做
我的意思是在您完成处理提交的数据之后,即使您希望它们位于同一页面上,也可以简单redirect('CONTROLLER_NAME');
返回TRUE或简单地关闭函数
至于字段,我建议使用autocomplete =&#34; off&#34;在您的输入(if you are not using an <input type="text"> above an <input type="password"> because Chrome and next version of Firefox will ignore automplete="off" in that situation)