После отправки сделайте звонок ajax! - PullRequest
0 голосов
/ 03 июня 2011

Я не буду записывать некоторые значения в базу данных с помощью ajax при событии submit, после этого я хочу запросить базу данных (с помощью ajax) еще раз, чтобы проверить наличие ответа, который будет записан после первого действия ajax. Наконец, если значения ответа «ок», то я хочу обновить страницу, иначе я сделаю запрос за 2 секунды до тех пор, пока ответ не будет окей!

//Write into database form values on submit event
$('form').submit(function(){
    $.post("submitForm.php", { "array": submitedArray});

//HOW to verify if submited values where well written into databse? 
   return false;
});

// ТОЛЬКО после отправки я хочу запросить базу данных и на основе значений ответа обновляю страницу каждые две секунды (если значения ответа не годятся) или обновляется только один раз (если проверенные значения хороши)

var refresh = setInterval(function(){
      $.getJSON('someOtherScript.php', function(data){
         $.each(data, function(index, value){
           //Check values 
     });                    
      });
   }, 2000);

Ответы [ 4 ]

1 голос
/ 25 июля 2012
 onComplete: function(){
   setTimeout(function() {$("#ajaxResponse").fadeOut();}, 500);
 }

Напишите это в вашей функции ajax и все. У меня это сработало.

0 голосов
/ 03 июня 2011

Если я правильно понял, вы используете ajax для отправки формы и хотите проверить обратный вызов.

$.ajax({
  url: '/path/to/file',
  type: 'POST',
  dataType: 'xml/html/script/json/jsonp',
  data: {param1: 'value1'},
  complete: function(xhr, textStatus) {
    //called when complete
  },
  success: function(data, textStatus, xhr) {
    //called when successful
    // This is where you will do your get request to find the result you are looking for.
  },
  error: function(xhr, textStatus, errorThrown) {
    //called when there is an error
  }
});
0 голосов
/ 03 июня 2011

Почему бы просто не дать начальному коду отправки проверить запись в базу данных, в случае успеха он возвращает код успеха, в противном случае он возвращает код ошибки. Либо вы доверяете ajax, либо нет.

0 голосов
/ 03 июня 2011

Определенно не используйте setInterval.setInterval будет выполнять этот код КАЖДЫЕ 2 секунды, а не только через 2 секундыТо, что вы искали, это setTimeout.Но также не используйте это.

посмотрите на

http://api.jquery.com/jQuery.post/

сообщение может принимать параметр success.Это позволит вам запустить второй бит кода только после завершения первого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...