我理解如何使用没有现有值的简单形式来做,但是假设我有一个可以通过http://domain.com/account/settings调用的视图.假设我有两个字段,用户名,密码和城市,都是从数据库中提取的(当然除了密码).因此,如果用户尝试提交表单并因任何原因未通过验证,我应该将它们"重定向"到哪里?现在,我让它显示相同的视图,但问题是,它再次从数据库中提取信息.我应该创建两个不同的视图吗?
第二个视图基本上会显示他们尝试输入错误消息的信息.
您不需要两个单独的视图。查看表单助手的功能set_value()、set_select()和set_checkbox()。set_radio()这些在提交和验证后重新填充表单。因此,在您的情况下,您应该这样指定字段:
<input type="text"
name="username"
value="<?php echo set_value('username', $user['username']); ?>" />
<input type="text"
name="city"
value="<?php echo set_value('city', $user['city']); ?>" />
Run Code Online (Sandbox Code Playgroud)
默认情况下,输入将具有$user['city']值。但验证失败后,它将用之前输入的值(包括不正确的值)重新填充。
请记住,您想要重新填充的所有字段都需要通过form_validation库传递:
$this->form_validation->set_rules('username', 'Username', 'required');
$this->form_validation->set_rules('city', 'City', '');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11253 次 |
| 最近记录: |