いくつかのチェックボックスと送信ボタンのあるページがあります。私はAJAXを使用して、チェックボックスの値をPHPスクリプトcalc.phpに投稿し、データを使用していくつかの計算を実行し、結果をPHPセッション変数に割り当てます。別のPHPスクリプトjson.phpがあります。このスクリプトは、そのセッションデータを取得し、jqueryがdivに表示するためにJSONとしてエンコードします。私の問題は、送信するデータセットの量、サブ番号をユーザーが設定できるようにすることです。ユーザーがセットの数を変更すると、表示ループが同期しなくなります。
たとえば、3つのデータセットで始まる場合は、#ボタンを押して1つずつ送信します。最後のセットの後、if(count == max)が実行されます。これで、別の計算を実行し、必要に応じてデータセットの数を変更できます。2に変更すると、出力は1にリセットして#logを空にするのではなく、4になります。
$("#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;
}
}
}
})
}
簡単なことだとは思いますが、2時間ほど修正しようとしていて、問題がわかりません。他のすべては完全に機能します。正しく実行されないのは出力カウンターだけです。