【问题标题】:Jquery validation codeigniterjQuery验证codeigniter
【发布时间】:2019-03-12 02:16:25
【问题描述】:

美好的一天。我只想问。每次我将数据从控制器传递到 jquery 时。它没有显示给我的 view.php 。我正在 jquery 中进行验证。

我的控制器

function login_user(){
            $data = array('LoginSuccess' => FALSE, 'LoginFailed' => array());
            $this->form_validation->set_rules('username', 'Username', 'trim|required|min_length[5]|max_length[12]');
            $this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[5]|max_length[12]');
            $this->form_validation->set_error_delimiters('<h6 class="text-danger">','</h6>');
            if($this->form_validation->run()){
                    $data['LoginSuccess'] = true;
            }else{
                //false
                foreach ($_POST as $err => $val):
                    $data['LoginFailed'][$err] = form_error($err);
                endforeach;
                echo json_encode($data);    
                }
            }

我的查询

$login.submit(function(e){
        e.preventDefault();
        var log = $(this);
        var username = $('#uname').val();
        var password = $('#psw').val();
    $.ajax({
        url:log.attr('action'),
        type: "POST",
        data: log.serialize(),
        dataType: 'json',
        success: function(res){
            if(res.LoginSuccess == true){
                alert('test');
            }else{
                $.each(data.messages, function(err,value){
                    var element = $('#' + err);
                    element.closest(".form-group")
                    .addClass(value.length > 0 ? 'has-error' : 'has-success')
                    .find('.text-danger').remove();
                    element.after(value);
                });
            }
        }
    });
});

【问题讨论】:

  • 验证码在哪里?

标签: jquery codeigniter validation


【解决方案1】:

LoginSuccess 设置为true 后,应立即回显,或者回显应在末尾的if 语句之外。

...
if ($this->form_validation->run()){
    $data['LoginSuccess'] = true;
    echo json_encode($data);
} else {
...

【讨论】:

    【解决方案2】:

    在控制器文件中你必须在最后加载视图页面。

    function login_user(){
        $data = array('LoginSuccess' => FALSE, 'LoginFailed' => array());
                    $this->form_validation->set_rules('username', 'Username', 'trim|required|min_length[5]|max_length[12]');
                    $this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[5]|max_length[12]');
                    $this->form_validation->set_error_delimiters('<h6 class="text-danger">','</h6>');
                    if($this->form_validation->run()){
                            $data['LoginSuccess'] = true;
                    }else{
                        //false
                        foreach ($_POST as $err => $val):
                            $data['LoginFailed'][$err] = form_error($err);
                        endforeach;
                        echo json_encode($data);    
                        }
        $data['title'] = 'Login';
                $data['view'] = 'auth/login';
                    }
    

    【讨论】:

      猜你喜欢
      • 2011-01-20
      • 1970-01-01
      • 1970-01-01
      • 2011-05-06
      • 1970-01-01
      • 1970-01-01
      • 2012-05-21
      • 2010-12-31
      • 2017-11-28
      相关资源
      最近更新 更多