提交后拨打ajax电话!

时间:2011-06-03 17:08:14

标签: javascript jquery ajax

我不会在提交事件上使用ajax将一些值写入数据库,之后我想再次查询数据库(使用ajax)以检查将在第一个ajax操作之后写入的一些响应。最后,如果响应值为“ok”,那么我想刷新页面,否则我会在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 个答案:

答案 0 :(得分:1)

 onComplete: function(){
   setTimeout(function() {$("#ajaxResponse").fadeOut();}, 500);
 }

在你的ajax函数中写这个就是这样。它对我有用。

答案 1 :(得分:0)

绝对不要使用setIntervalsetInterval将使代码每2秒执行一次,而不是仅在2秒后执行。您要找的是setTimeout。但是也不要使用它。

看看

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

帖子可以采用success参数。这将允许您在第一次完成后运行第二位代码。

答案 2 :(得分:0)

如果我的方法正确,您使用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
  }
});

答案 3 :(得分:0)

为什么不让初始提交代码检查数据库写入,如果成功则返回成功代码,否则返回错误代码。要么你信任ajax,要么你不相信。