Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 提交后进行ajax调用!_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 提交后进行ajax调用!

Javascript 提交后进行ajax调用!,javascript,jquery,ajax,Javascript,Jquery,Ajax,我不想在提交事件时使用ajax将一些值写入数据库,之后我想再次查询数据库(使用ajax)以检查在第一个ajax操作之后将写入的响应。最后,如果响应值为“ok”,那么我想刷新页面,否则我将在2秒后进行查询,直到响应变为ok //Write into database form values on submit event $('form').submit(function(){ $.post("submitForm.php", { "array": submitedArray}); //

我不想在提交事件时使用ajax将一些值写入数据库,之后我想再次查询数据库(使用ajax)以检查在第一个ajax操作之后将写入的响应。最后,如果响应值为“ok”,那么我想刷新页面,否则我将在2秒后进行查询,直到响应变为ok

//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;
});
//仅在提交后,我希望查询数据库,并基于响应值,我将每两秒刷新一次页面(如果响应值不好),或仅刷新一次(如果选中的值好)


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

看看


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

如果我没有弄错,您将使用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
  }
});

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

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

在ajax函数中编写这个函数,就这样。这对我来说很有效。

我想你是在取消这里提交的表单,否则在回复回来时页面就会消失。如果是,问题是什么?你是说你的代码不工作——如果不是的话,会发生什么错误?不,我不是取消表单,我只是想确保提交的表单会影响数据库,然后查询数据库,检查其他依赖于提交的表单的值,如果第二次ajax调用中返回的值比我的值好的话刷新一个特别的div如果不是,刷新将每两秒钟发生一次…很抱歉,你是对的,我将不得不用“return false”取消表单提交事件;我相信这就是我需要的,我的意思是在提交后我想查询数据库,并用返回的值做一些事情(刷新或不刷新特别的div)我怎样才能用$post做到这一点?谢谢。看看我的答案,$.ajax的工作原理与post相同,只是它更容易获得回调。好吧。。。这里的目标是什么。。。客户机是否得到数据库事务发生的确认?如果是这样的话,就不需要两次ajax旅行了。Ajax调用可以返回数据(或错误)。如果呼叫返回success,您就知道它成功了。如果调用返回一个错误-或者没有返回-你可以很肯定出了什么问题。也许我误解了根本问题。我的观点是,如果你不信任ajax第一次工作并返回一个成功或适当的错误代码,为什么你会相信它在以后的时间告诉你它第一次是否工作。我知道我不需要两次ajax旅行来获得db的确认。。。我将需要两次ajax旅行,因为我希望某些设备将获得提交的值并更新控制字段。。。我将不得不在第二次ajax之旅中阅读,以更新适当的div,其中有关于它的信息,了解它吗?谢谢你…啊好的!那么,有一条建议。不要使用setTimeout,因为可能会累积ajax调用。相反,如果成功停止,则在返回时手动进行一次ajax调用,否则在该点上执行setInterval,在2秒内安排另一次ajax调用,然后重复。问题是我“无法”进行第二次ajax调用。。。我可能需要一些帮助:)那它怎么办?如果遵循api.jquery.com文档中的$.ajax文档,调用是否到达服务器(设置断点)?如果是,它是否从服务器返回?如果是这样,客户端会发生什么情况。将两个函数传递给$.ajax—一个在调用成功时调用,另一个在调用失败时调用。如果其中一个没有在客户端调用,那么If将非常奇怪。例如,即使你传递垃圾URL,也应该在客户端调用错误函数。非常感谢你的回答!但是我不能让它正常工作!目前我使用的是://Ajax goes here$.post(“refreshOutputs.php”,“arrBtn”:submitedRadios},函数(data){if(data==“1”){alert(“Success”);//}if(data==“0”){alert(“Error!”};返回false;
 onComplete: function(){
   setTimeout(function() {$("#ajaxResponse").fadeOut();}, 500);
 }