Php CodeIgniter,在相应的div中显示验证错误

Php CodeIgniter,在相应的div中显示验证错误,php,codeigniter,Php,Codeigniter,我一页有三张表格。比如,一个用于登录,一个用于注册,一个用于忘记密码。所有这些都构成了行动,也是一样的。在提交过程中,提交的表单由隐藏的输入值标识 echo form_hidden('formname', 'registration'); echo form_hidden('formname', 'login'); echo form_hidden('formname', 'assistance'); 每个表单都有一组验证规则,如有效电子邮件、最小长度等,如果提交无效,则会抛出错误。但问题是,

我一页有三张表格。比如,一个用于登录,一个用于注册,一个用于忘记密码。所有这些都构成了行动,也是一样的。在提交过程中,提交的表单由隐藏的输入值标识

echo form_hidden('formname', 'registration');
echo form_hidden('formname', 'login');
echo form_hidden('formname', 'assistance');
每个表单都有一组验证规则,如
有效电子邮件
最小长度
等,如果提交无效,则会抛出错误。但问题是,当抛出错误时,这三种形式都会显示出来。因为每个表单上面都有
validation\u errors()
。我的页面中不能有单个
验证\u错误

那么,我有没有办法将登录表单对应的错误消息放在
中,哪个ID是
登录错误
,哪个ID是
注册错误
等中

<div id='registration-errors'>
<?php
validation_errors(); // For error messages of registration form
echo form_open('account', array('method'=>"POST", 'autocomplete'=>"off", 'class'=>'user-register'));
// Hidden input + Other inputs and labels + Submit button
?>
</div>


<div id='login-errors'>
<?php
validation_errors(); // For error messages of registration form
echo form_open('account', array('method'=>"POST", 'autocomplete'=>"off", 'class'=>'user-login'));
// Hidden input + Other inputs and labels + Submit button
?>
</div>

<div id='assistance-errors'>
<?php
validation_errors(); // For error messages of forgot password form
echo form_open('account', array('method'=>"POST", 'autocomplete'=>"off", 'class'=>'user-assistance'));
// Hidden input + Other inputs and labels + Submit button
?>
</div>

这是因为在所有表单上都有回显
验证错误()
,因此如果存在任何验证错误,则始终为真

尝试使用:-

form_error('fieldname');
或从控制器返回要查看的唯一标识符:-

$this->data['register'] = $this->input->post('registration');
$this->data['login'] = $this->input->post('login');
$this->data['assistance'] = $this->input->post('assistance');
$this->load->view('myview', $this->data);
然后查看您的视图:-

if(!empty($register))
echo validation_errors();

if(!empty($login))
echo validation_errors();

if(!empty($assistance))
echo validation_errors();

在您的所有三个隐藏中发送一些值,以便在一次提交中存在一个值

在控制器中定义验证错误

在视图中

<?php if(isset($registration_errors)){
     echo $registration_errors;
}

echo form_open('account', array('method'=>"POST", 'autocomplete'=>"off", 'class'=>'user-register'));
// Hidden input + Other inputs and labels + Submit button
?>

<?php if(isset($login_errors)){    
     echo $login_errors;
}

echo form_open('account', array('method'=>"POST", 'autocomplete'=>"off", 'class'=>'user-login'));
// Hidden input + Other inputs and labels + Submit button
?>


<?php if(isset($assistance_errors)){    
     echo $assistance_errors;
}
echo form_open('account', array('method'=>"POST", 'autocomplete'=>"off", 'class'=>'user-assistance'));
// Hidden input + Other inputs and labels + Submit button
?>

如果使用的是
validation\u error()
函数,则可以简单地执行此操作

echo validation_errors('<div class="alert alert-danger">','</div>');
echo验证_错误('');

将在引导警报面板中显示所有错误

您在每个表单上分别隐藏和提交按钮?
echo validation_errors('<div class="alert alert-danger">','</div>');