使用Wrapper进行Codeigniter表单验证错误

时间:2013-01-21 04:41:56

标签: php codeigniter validation

我在PHP Codeigniter框架下构建了一个Login表单,并设置了验证规则。 规则工作正常,但我想要实现的是不同的东西。

登录表单包含用户名&密码文本框设置在名为 control-group 的容器下。 那些使用Bootstrap框架进行HTML的人非常了解这一点。

所以文本框代码是这样的:

<div class="control-group">
    <label for="username">Username:</label>
    <input type="text" id="username" name="username" value="" placeholder="Username" class="login username-field" />
    <?php echo form_error('username','<span class="help-inline error">', '</span>'); ?>
</div>

您可以看到我还将span包装器放到错误中,以便它可以以红色样式显示。但我想做的其他事情是,我想将错误类应用于控制组

因此它来自

<div class="control-group">

<div class="control-group error">

我已经通过 $ error_class 变量并从Controller传递它来尝试这个。

$data['error_class'] = '';
$this->form_validation->set_rules('username', 'Username', 'required');
$this->form_validation->set_rules('password', 'Password', 'required');

if ($this->form_validation->run() == FALSE){
    $data['error_class'] = 'error';
    $this->load->view('administrator/login_view', $data);
}

但它的作用是,它始终将错误类应用于控制组。即使没有提交表格。

知道如何实现这个目标吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

只有在用户提交表单时才必须运行验证。

尝试这样做

if($this->input->post())
{
 //your form validation
}

仅在用户提交帖子请求时才会运行。

编辑:

除了在每个字段上填充错误外,还可以使用form_error('field_name')检查每个字段中的错误并回显错误类

例如

<?=(form_error('field_name')?'error':'')?>