我有一个带有一些复选框和提交按钮的页面。我使用 AJAX 将复选框值发布到 PHP 脚本 calc.php,使用数据运行一些计算并将结果分配给 PHP 会话变量。我有另一个 PHP 脚本 json.php,它获取该会话数据并将其编码为 JSON,以便 jquery 显示在 div 中。我的问题是我允许用户设置他们要提交的数据集的数量,子编号,当用户更改数据集的数量时,我的显示循环会不同步。
例如,如果他们从 3 个数据集开始,他们通过按 #button 来逐一提交。在最后一组之后, if (count == max) 运行并且。现在,他们可以根据需要进行另一次计算并更改数据集的数量。如果他们将其更改为 2,则输出变为 4,而不是重置为 1 并清空#log。
$("#button").click(function() {
$.ajax({
  type: "POST",
  url: "calc.php",
  data: $("form#checkboxes").serialize(),
  success: function(data) {
    if(document.getElementById('calc').checked) {
    var max = checkboxes.subnumber.value;
    var stop = Number(max) + 1;
    count++;
    output++;
    $.getJSON('json.php', function(data) {
      $.each(data, function(key, val) {
        $('#log').append(output);
        $('#log').append(val.result);
        $('#log').append("</br>");
      })
    })
    if (count == max){
      count = 0;
      $("#results").load('results.php')
    }
if(output == stop) {
  $("#log").empty();
  output = 1;
}
}
}
})
}
我知道这很简单,但我已经尝试修复它两个小时,但无法找出问题所在。其他一切都完美无缺,只是输出计数器没有正确完成。