【发布时间】:2011-04-23 00:26:28
【问题描述】:
所以我有一个网络应用程序,我正在使用一个表单,该表单需要在提交之前填充所有字段。如果您尝试在未填充字段的情况下提交应用程序,它会再次加载页面并显示错误。填写完所有字段并单击提交后,它会重定向到同一页面并显示从 flashdata 生成的消息。请参阅下面的简化示例。
欢迎控制器:
function show_view()
{
$this->load->view('form');
}
function process_form()
{
// make the 'quality' field required
$this->form_validation->set_rules('quality', 'Quality', 'required');
if($this->form_validation->run() == FALSE) //if the fields are NOT filled in...
{
echo form_error('quality');
$this->load->view('form'); //reload the page
}
else // if the fields are filled in...
{
// set success message in flashdata so it can be called when page is refreshed.
$this->session->set_flashdata('message', 'Your rating has been saved');
redirect(welcome/show_view);
}
}
现在为了说明我的问题,假设我在“主页”视图中并导航到“表单”视图。如果我填充“质量”字段并单击提交,我将被重定向回“表单”视图,并显示成功消息。如果我单击浏览器上的后退按钮,它会将我带回“主页”视图。一切都按预期进行
现在假设我在“主页”视图中并导航到“表单”视图。如果我单击提交按钮而不填充“质量”字段,则会再次重新加载“表单”视图并显示错误消息。如果我然后填充“质量”字段并单击提交,我将被重定向回“表单”视图并显示成功消息。问题是,如果我点击浏览器上的后退按钮,它现在会带我回到出现错误的表单页面,我必须再次点击后退按钮才能返回“主页”视图。
最佳编码实践是什么,这样如果用户提交有错误的表单,它将显示错误,如果他们修复错误并再次提交表单,它将显示成功消息,如果他们点击返回浏览器,它会将他们带回“主页”视图??
【问题讨论】:
-
我很确定我的解决方案正是您使用 Codeigniter 寻找的解决方案,如果您有任何问题,请告诉我。
标签: php forms codeigniter