-1

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 を表示し、メイン ページにリダイレクトすることです。それ以外の場合、ユーザー名またはパスワードが正しく表示されません。コードの何が問題になっていますか? 何か案は?ありがとう。

4

1 に答える 1

1

「メッセージ」の新しい要素を作成する代わりに、ローダーに「メッセージ」という名前を付け、ローダーに「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);
}
于 2013-11-09T06:21:02.253 に答える