Php 使用包装器的Codeigniter表单验证错误

Php 使用包装器的Codeigniter表单验证错误,php,codeigniter,validation,Php,Codeigniter,Validation,我在PHP Codeigniter框架下构建了一个登录表单,并设置了其验证规则。 规则运作良好,但我想要实现的是一些不同的东西 登录表单在名为控制组的容器下设置了用户名和密码文本框。 那些使用HTML引导框架的人非常清楚这一点 文本框代码如下所示: <div class="control-group"> <label for="username">Username:</label> <input type="text" id="usern

我在PHP Codeigniter框架下构建了一个登录表单,并设置了其验证规则。 规则运作良好,但我想要实现的是一些不同的东西

登录表单在名为控制组的容器下设置了用户名和密码文本框。 那些使用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>
但它所做的是,它始终将错误类应用于对照组。即使没有提交表格

你知道如何做到这一点吗


提前感谢。

您必须仅在用户提交表单时运行验证

试着这样做

if($this->input->post())
{
 //your form validation
}
这将仅在用户提交post请求时运行

编辑:

除了在每个单独的字段上填充错误外,还可以使用
form\u error('field\u name')
检查每个单独字段中的错误并回显错误类

例如



如果验证成功,我想重定向到其他页面怎么办。我的意思是在这种情况下如何编写条件?如果($this->form_validation->run()==FALSE){//do something}或者{redirect('some_controller');}对,但是您说过表单验证只需要在表单发布时进行?这就是困惑。。我的意思是当表单视图需要加载时,在这种情况下?对不起,我知道了。我只需要写一行$data['error_class']='error';提交表格时。否则该变量被传递为null。谢谢:)您也可以尝试isset($error\u class),如果返回true,则应用该类。
<div class="control-group error">
$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);
}
if($this->input->post())
{
 //your form validation
}
<?=(form_error('field_name')?'error':'')?>