2013-05-31 3 views
0

В последнее время я задал много вопросов о jquery, я стараюсь изо всех сил узнать об этом.Скрыть данные о загрузке, как только страница загрузилась

В любом случае, я отправляю HTTP-запрос ajax на страницу PHP, чтобы сделать форму входа, не требуя обновления страницы. Теперь, так как может потребоваться некоторое время для подключения базы данных и получения информации для входа и т. Д.

Теперь у меня есть Загрузка как .html, но как я могу скрыть данные загрузки после загрузки данных?

Пробовал использовать несколько функций, но, похоже, не работал.

Спасибо, этот сайт мне очень помог, хотя процесс обучения.

Вот Javascript

$(document).ready(function() { 
    // Make a function that returns the data, then call it whenever you 
    // need the current values 
    function getData() { 
     return { 
      user_login: $('#user_login').val(), 
      pass_login: $('#pass_login').val() 

     } 
    } 


     function loading(e) { 
     $('#content').html('Loading Data'); 
    } 

    function check(e) { 
     e.preventDefault(); 
     $.ajax({ 

      url: 'ajax/check.php', 
      type: 'post', 
      data: getData(), // get current values 
      success: function (data) { 
          $('#content').hide('slow'); 

       alert(9); 

      } 

     }); 

    } 

    // Don't repeat so much; use the same function for both handlers 
    $('#field').keyup(function(e) { 
     if (e.keyCode == 13) { 
    var username = $('#user_login').val(); 

     loading(e); 
     check(e); 

     } 
    }); 

    $('#submit').click(function(e) { 
     if (e.keyCode != 13) { 
     loading(e); 
     check(e); 
     } 


    }); 

}); 

Херес HTML

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
       <script src="js/login.js"></script> 
       <div id="content"> Loading...</div> 

       <div id="field"> 
      <input type='text' name='user_login' id='user_login' placeholder='eg: [email protected]'> <br> 
      <input type='password' name='pass_login' id='pass_login'> <br> 
     <input type="submit" name="submit" id="submit" value="Login"> 
      </div> 

+1

Что происходит в вашем скрипте? –

+0

В принципе, он отправит запрос на ajax/check.php. Я делаю форму входа с ajax, поэтому она не обновляет страницу. Теперь загрузка (e) вызовет функцию «Загрузка ...», но я хочу, чтобы она вызывала .hide после загрузки данных. – Spudster

ответ

0
function check(){ 
    $.ajax({ 

     url: 'ajax/check.php', 
     type: 'post', 
     error: function(){ 
      alert('An error has occured.'); 
     }, 
     beforeSend: function(){ 
      $('#content').show('slow').html('Loading'); 
      //loading(e); 
     }, 
     data: {user_login: $('#user_login').val(),pass_login: $('#pass_login').val()}, // get current values 
     success: function (data) { 
         $('#content').hide('slow'); 

      alert(9); 

     } 

    }); 
} 

$('#submit').click(function(){ 
    check(); 
}); 

$('#field, #field input').keyup(function(e){ 
     var username = $('#user_login').val(); 
     if (e.keyCode == 13) { 
     check(); 
     } 
}); 

Markup

<div id="field"> 
     <input type='text' name='user_login' id='user_login' placeholder='eg:[email protected]'> <br> 
     <input type='password' name='pass_login' id='pass_login'> <br> 
     <input type="button" name="submit" id="submit" value="Login"> 
    </div> 

удачи !!!

+0

Вы не можете использовать кнопку типа отправки для вызова ajax. если вы это сделаете, то вы должны вернуть false после события click. Функция проверки не требует внутреннего параметра события e. Ваш код был излишне громоздким. –

+0

Я знаю, что это было. Мой первый настоящий Java Script/JQuery Application. Мне лучше, когда я кодирую PHP. В любом случае. Я нашел проблему. Я забыл повторно включить JQuery CDN (мог разместить его сам на своей локальной машине) и файлы login.js. Спасибо большое.) SF помогает мне, хотя в обучении JQ. – Spudster

+0

В stackoverflow, вы проявляете свою признательность, принимая ответ, нажимая стрелку вверх и проверяя ответ как принятый. Люди будут отвечать только на ваши будущие вопросы, если вы проявите некоторую признательность. –

0

Прежде всего, я не уверен, если ваш код будет возвращать успех. Этот код поможет вам узнать, не отвечает ли ответ. Если вы получите предупреждение обозревателя. Это означает, что у вас есть ошибка на стороне сервера. Его либо путь URL неправильный, либо ваш код состояния ответа сервера равен 500 (Внутренняя ошибка).

$.ajax({ 

     url: 'ajax/check.php', 
     type: 'post', 
     error: function(){ 
      alert('An error has occured.'); 
     }, 
     beforeSend: function(){ 
      $('#content').show('slow').html('Loading'); 
      //loading(e); 
     }, 
     data: getData(), // get current values 
     success: function (data) { 
         $('#content').hide('slow'); 

      alert(9); 

     } 

}); 

Рефакторинг вашего кода будет выглядеть следующим образом. Выберите первый или второй:

$.ajax({ 

     url: 'ajax/check.php', 
     type: 'post', 
     error: function(){ 
      alert('An error has occured.'); 
     }, 
     beforeSend: function(){ 
      $('#content').show('slow').html('Loading'); 
      //loading(e); 
     }, 
     data: {user_login: $('#user_login').val(),pass_login: $('#pass_login').val()}, // get current values 
     success: function (data) { 
         $('#content').hide('slow'); 

      alert(9); 

     } 

}); 
+0

его на правильном пути, но я хочу, чтобы он начал говорить, как только пользователь нажимает кнопку или попадает в нее. Как, например, работает форма регистрации Facebook. Когда он загружает файл, он будет скрывать загрузку. – Spudster

+0

В приведенном выше коде просто сказано: beforeSend, показать загрузку ...... после отправки и завершения загрузки, скрыть загрузку. beforeSend запускается, когда вы нажимаете или нажимаете кнопку ввода, и после загрузки запускается успех, поэтому загрузчик скрывается. ваш код слишком длинный для такой вещи. Я реконструирую его, если захочу. –

+0

Покажите свою разметку html. Мне нужно увидеть вашу кнопку отправки. Обновляется ли страница нажатием кнопки? Если да, разметка вашей кнопки неверна. используйте или кнопку

Смежные вопросы