Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CodeIgniter表单验证,按顺序显示错误_Php_Codeigniter - Fatal编程技术网

Php CodeIgniter表单验证,按顺序显示错误

Php CodeIgniter表单验证,按顺序显示错误,php,codeigniter,Php,Codeigniter,假设我有一个登录表单,它有用户名和密码字段。这两个字段都需要填写,当您提交表单时,有两行不同的内容 用户名字段是必需的。 密码字段是必需的 我想做的是只显示用户名字段错误,当用户名字段没有任何错误时,它将显示密码字段错误 如何做到这一点 此外,我还记得有一种方法可以只显示与字段有关的错误,它的代码段是什么?我建议使用一个仅绑定到一个输入的自定义回调函数,该函数检查输入并有条件地设置所需的消息 <?php if ( ! defined('BASEPATH')) exit('No direct

假设我有一个登录表单,它有用户名和密码字段。这两个字段都需要填写,当您提交表单时,有两行不同的内容

用户名字段是必需的。 密码字段是必需的

我想做的是只显示用户名字段错误,当用户名字段没有任何错误时,它将显示密码字段错误

如何做到这一点


此外,我还记得有一种方法可以只显示与字段有关的错误,它的代码段是什么?

我建议使用一个仅绑定到一个输入的自定义回调函数,该函数检查输入并有条件地设置所需的消息

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class YourController extends CI_Controller {

    public function save() 
    {
        //.... Your controller method called on submit

        $this->load->library('form_validation');

        // Build validation rules array
        $validation_rules = array(
                                array(
                                    'field' => 'username',
                                    'label' => 'Username',
                                    'rules' => 'trim|xss_clean|callback_required_inputs'
                                    ),
                                array(
                                    'field' => 'password',
                                    'label' => 'Password',
                                    'rules' => 'trim|xss_clean'
                                    )
                                );
        $this->form_validation->set_rules($validation_rules);
        $valid = $this->form_validation->run();

        // Handle $valid success (true) or failure (false)
        if($valid)
        {
            //
        }
        else
        {
            //
        }
    }


    public function required_inputs()
    {
        if( ! $this->input->post('username'))
        {
            $this->form_validation->set_message('required_inputs', 'The Username field is required');
            return FALSE;
        }
        else if ($this->input->post('username') AND ! $this->input->post('password'))
        {
            $this->form_validation->set_message('required_inputs', 'The Password field is required');
            return FALSE;
        }

        return TRUE;
    }
}

我真的不知道从哪里开始。我的想法是检查是否有任何用户名验证错误,如果没有,则显示密码,但这不是一个好的代码实践。所以我想知道是否有一种更整洁、更像codeigniter的方法来实现这一点。如果没有,那么不用担心,我将使用单个字段错误来完成类似的操作。好的方法,我从概念上考虑过这一点。最终使用的是常规方式,只是更多的css样式