我有一个带有一些复选框和提交按钮的页面。我使用 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;
}
}
}
})
}
我知道这很简单,但我已经尝试修复它两个小时,但无法找出问题所在。其他一切都完美无缺,只是输出计数器没有正确完成。