Jquery 循环中每个项目[编号]的json查询

Jquery 循环中每个项目[编号]的json查询,jquery,json,loops,Jquery,Json,Loops,我有两个循环: 一个用于计算页面中的对象,另一个用于为每个对象设置变量。 假设x是对象的数量,y是变量; 例如: 表示x=10;y=3循环应如下所示: x:y 1:1 2:2 [..] 8:2 9:3 10:1 对于每个对象,我都需要进行json查询。Json将以0/1回复,这意味着查询未成功, 如果响应失败,查询必须忽略y变量: 例如: $('button.#start').click(function(){ var

我有两个循环: 一个用于计算页面中的对象,另一个用于为每个对象设置变量。 假设x是对象的数量,y是变量; 例如:

表示x=10;y=3
循环应如下所示:

 x:y
    1:1
    2:2
    [..]
    8:2
    9:3
    10:1
对于每个对象,我都需要进行json查询。Json将以0/1回复,这意味着查询未成功, 如果响应失败,查询必须忽略y变量: 例如:

    $('button.#start').click(function(){
        var last = $('input.blue').length;
        var totalpackages = '10';
        var currentpackage;
        for( currentpackage = '1'; currentpackage <= totalpackages; )
        {// for each package;
            var n;
            for(n='1'; n <= last;)
            {
                //alert(currentpackage + ' : ' + n)
                //n++
                //currentpackage++
                $.getJSON('api/testsenderfail.php', 
                function(data){
                    worklink = data.data;
                    if(worklink == '1')
                    {
                    alert(currentpackage + ' : ' + n + ' : ' + worklink)
                    n++
                    currentpackage++
                    }else{
                    alert(currentpackage + ' : ' + n + ' : ' + worklink)
                    n++
                    //currentpackage++
                    }
                });
            }
        }
    })
$('button.#start')。单击(函数(){
var last=$('input.blue').length;
var totalpackages='10';
无功电流包;

对于(currentpackage='1';currentpackageAJAX调用是异步的,这意味着回调方法将在您退出click事件处理程序后运行。您只需更改回调方法中的循环计数器,这只能在您完成循环后发生,并且只能在您更改循环后发生柜台


所以,你有一个永恒的循环。

我已经找到了一个简单的方法。我会发布,以防其他人也遇到同样的情况

$('button.#start').click(
  function(){
    var X;
    for(X='1'; X <= lastX;){
      do_Y_vals(x, y) // here a loop to count X that will pass every X to another function  
      x++
      y++
    }
  })

所以我需要为每个查询定义一个循环?我可以为x定义一个循环[我的案例],但我需要另一个依赖于json回复的循环…任何其他想法?或者…如果我使用对ajax的同步调用?抱歉,但我在这个领域是新手。然后我想另一个解决方案:按钮处理程序启动一个循环:x。我如何定义要在函数/按钮处理程序之外使用的变量?如果你想控制循环根据AJAX调用的结果,您必须使用同步调用,或者重新生成代码以使用状态而不是循环,这样,一个调用的回调将发送下一个调用的请求。后一个调用更可取,因为它不会冻结浏览器。我无法从问题中猜出用例。但您不能只发送一个请求吗将数据一次转换为一个脚本?是什么要求使您考虑这种循环类型
<?php
    $rand = rand(0, 9);
    if($rand == '0'){$work = '0';}else{$work = '1';}
    $data = array('data' => $work);
    echo json_encode($data);
?>
$('button.#start').click(
  function(){
    var X;
    for(X='1'; X <= lastX;){
      do_Y_vals(x, y) // here a loop to count X that will pass every X to another function  
      x++
      y++
    }
  })
function do_y_vals(x){
  $.getJSON(//variables here
    function(data){
      if(data.reply == '1'){
        function do_y_vals(x, y)
        y++
      }
    });
}