codeigniter ajax loader错误

时间:2013-11-09 06:01:44

标签: javascript php ajax codeigniter

我的CI中的ajax加载器有问题。

这是我到目前为止所尝试的:

        <script type="application/javascript">
    $(document).ready(function() {
      $('#submit').click(function() {
        var form_data = {
        username : $('.username').val(),
        password : $('.password').val(),
      };
      var loader = $('<img/>', {
        'src':'assets/img/ajax-loader.gif',
        'id':'message'
      });
      loader.insertAfter($(this));

      //.removeClass().addClass('loader').html('<img src="assets/img/ajax-loader.gif">').fadeIn(1000);
      $.ajax({ //
        url: "<?php echo site_url('login/ajax_check'); ?>",
        type: 'POST',
        async : false,
        data: form_data,
        success: function(msg) {
          $('#ajax_loader').remove();
          $('#message').html(msg);
        }
      });
        return false;
      });
    });
  </script>

c_login.php控制器

  function ajax_check() {
            //if($this->input->post('ajax') == '1') {
            if($this->input->is_ajax_request()){
                $this->form_validation->set_rules('username', 'username', 'trim|required|xss_clean');
                $this->form_validation->set_rules('password', 'password', 'trim|required|xss_clean');
                $this->form_validation->set_message('required', 'Please fill in the fields');
                    if($this->form_validation->run() == FALSE) {
                        echo validation_errors();
                    } else {
                        $this->load->model('m_access');
                        $user = $this->m_access->check_user($this->input->post('username'),$this->input->post('password'));
                    if($user) {
                        echo 'login successful';
                        //echo '<img src="assets/img/loader-bar.gif"> Hello!';
                        //$this->load->view('welcome');
                    } else {
                        echo 'unknown user'; //
                        //echo ' <img src="assets/img/icon_error.gif"> Username or password not valid';
                    }
                }
            }
        }

更新

问题是,它只是无限地显示加载器。

我想要做的是,如果用户有效,将显示loader.gif然后重定向到主页,否则将显示用户名或密码不正确。我的代码出了什么问题?有任何想法吗?感谢。

1 个答案:

答案 0 :(得分:1)

似乎您将加载程序命名为“message”而不是创建“message”新元素,并将加载程序命名为“ajax_loader”。

var loader = $('<img/>', {
    'src':'assets/img/ajax-loader.gif',
    'id':'ajax_loader'
});
var message = ...
    ...
    'id':'message'

success: function(msg) {
    $('#ajax_loader').remove();
    $('#message').html(msg);
}