我有一个Ajax JQuery脚本,应该发布一个日期数组到一个PHP页面获取结果,如果它是正确的结果,它会在页面上的div中显示成功消息,如果它不是正确的返回的结果,它显示一个错误。应该发生的是每个日期应该一次发送1次,等待响应后再转到下一个日期。该脚本似乎工作正常,但我注意到日期是随机顺序返回。经过调查,我了解到这是因为Ajax调用同时发送多个请求。我想这就是为什么它被称为异步JavaScript和XML(LOL)。无论如何,我一直在这个小时,似乎无法找到或理解解决这个问题的方法。我已经阅读了一些关于Javascript承诺和各种东西的东西,但我不明白。如果有人可以帮助一些代码的帮助,这将是超级赞赏!如何使用Ajax一次只发布一个数组的值,并在继续之前等待响应?
下面是完整的HTML文件与Javascript和Ajax调用包括:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Dates Range</title>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" integrity="sha256-7s5uDGW3AHqw6xtJmNNtr+OBRJUlgkNJEo78P4b0yRw= sha512-nNo+yCHEyn0smMxSswnf/OnX6/KwJuZTlNZBjauKhTK0c+zT+q5JOCx0UFhXQ6rJR9jg6Es8gPuD2uZcYDLqSw==" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-1.12.0.js"></script>
</head>
<script>
$(function(){ startProcess({"7":"2016-01-07","8":"2016-01-08","9":"2016-01-09","10":"2016-01-10","11":"2016-01-11","12":"2016-01-12","13":"2016-01-13","14":"2016-01-14","15":"2016-01-15","16":"2016-01-16","17":"2016-01-17","18":"2016-01-18","19":"2016-01-19","20":"2016-01-20","21":"2016-01-21","22":"2016-01-22","23":"2016-01-23","24":"2016-01-24","25":"2016-01-25","26":"2016-01-26","27":"2016-01-27","28":"2016-01-28","29":"2016-01-29","30":"2016-01-30","31":"2016-01-31","32":"2016-02-01","33":"2016-02-02","34":"2016-02-03","35":"2016-02-04","36":"2016-02-05"});
// Ajax to send Date
function startProcess(arg)
{
$.each(arg, function(index, val)
{
$.post('returnsample.php', { query : val }, function(resp)
{
// resp = $.parseJSON(resp);
if (resp == "YES IT WORKED")
{
$('.append-range').append('<strong>Date : </strong>'+val+'<p>Got Right Answer</p><br>');
}
else
{
$('.append-range').append('<strong>Date : </strong>'+val+'<p>Got error</p><br>');
}
});
});
}
})
</script>
<body>
<div class="container">
<div class="row">
<h1>Range between two dates:</h1>
</div>
<br>
<div class="row">
<div class="append-range"></div>
</div>
</div>
</body>
</html>
也许不通过阵列使用每个循环,但通过它和递增值,当你得到你想要的结果,只有增加而递增。 –
为什么你不发送完整的数组,处理每个日期,然后发回一组结果?看起来像一个更健全的UX – DelightedD0D