【发布时间】:2015-07-31 16:27:00
【问题描述】:
我有一个接受表单输入的页面,它是使用 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');
}
}
当输入验证失败时,url 以 www.something.com/search/search_fn 的形式返回,当我刷新时,它基本上会加载相同的页面并显示相同的错误消息。我,不知何故,需要重置 $this->input->post('search'),这样只有在单击搜索按钮时才会为真。
谢谢。
【问题讨论】:
-
欢迎来到 Stack Overflow!这个问题的信息有点少。能分享一下你尝试过的,遇到了什么问题吗?
-
如果不发布您遇到问题的代码示例,几乎不可能为您提供帮助。
-
请记住,IE 和其他浏览器会保存状态(真的很烦人)并且即使在页面刷新后也会将数据保留在表单中。不知道和你的问题有没有关系。
标签: php forms codeigniter validation