CodeIgniter:如何显示单个验证错误?

时间:2012-05-19 02:33:45

标签: php codeigniter

如果我使用了这个

<?= validation_errors(); ?>

结果是

Username field is required
Password field is required
<textbox for username>
<textbox for password>

我真正需要的是显示与其元素内联的错误

示例:

<textbox for username> Username field is required
<textbox for password> Password field is required

3 个答案:

答案 0 :(得分:7)

为了单独显示错误,您应该使用 form_error('username')功能。并且为了获得正在检查的字段的值,请使用函数 set_value('username')

要使这两个功能起作用,您必须在控制器中为“用户名”字段设置规则。如果您指定验证规则适用于该字段。

<?php echo form_error('username'); ?>
<input type="text" name="username" value="<?php echo set_value('username'); ?>">

这是simple tutorial about form Login

答案 1 :(得分:4)

用户指南中对此进行了介绍:

  

http://codeigniter.com/user_guide/libraries/form_validation.html#individualerrors

     

单独显示错误

     

如果您希望在每个表单字段旁边显示错误消息,请执行此操作   而不是列表,您可以使用form_error()函数。

因此,如果您的字段名称为username,则可以使用form_error('username')

  

重要提示:如果您使用数组作为表单字段的名称,那么   必须将其作为数组提供给函数。例如:

  <?php echo form_error('options[size]'); ?>

这是$this->form_validation->error()的快捷方式,如果您愿意,也可以使用。

答案 2 :(得分:-1)

当我搜索这个问题时,我正在寻找一种不同的答案。所以我想分享我的解决方案,解决我遇到的问题&#34;如何显示单个验证错误?&#34;

解决方案是在每个后​​续表单验证规则之前运行验证例程。这样只会报告第一个错误。

        $this->form_validation->set_rules('username', 'Username', 'callback_check_username');

        if ($this->form_validation->run() == TRUE){
            $this->form_validation->set_rules('password', 'Password', 'callback_check_password');
        }