ランダムキーを生成する関数を含む key_gen.php ファイルがあります。実行すると、php ファイルは 1 つのキーを返します (テスト済みで動作します)。
私のjavascriptファイルには、ボタンにクリックイベントがあります(動作します)。次のようなものです:
$('#kg_btn').click(function(){});
次に、クリックイベント内に関数があります:
var get_key = function(){
for(var i = 0; i < kg_quantity; i++) {
$.ajax ({
url: "../keygen/gen_rkey.php",
type: "GET",
datatype: "json",
success: function(data) {
var j_obj = JSON.parse(data);
//alert("Success!");
prs = j_obj.test;
console.log(prs);
//add_key();
},
error: function(error) {
alert("Error! Can't send the data");
}
}); //ajax call ends
}
}
この関数を 1 回実行すると (「Kg_quantity」変数を 1 に設定して)、ボタンをクリックするたびに正しい動作が得られます。その結果、クリックごとに console.log のキーが異なります。
「kg_quantity」を 1 以外の数値 (例: 3、9、10) に設定すると、console.log メッセージが返されますが、生成される数値は同じです。
ajax オブジェクトを for ループに挿入すると、ajax 呼び出しが数回実行されることを期待していました。プロトタイプ関数内にも ajax 呼び出しを入れようとしましたが、同じ結果が得られます。
編集:(Rossが示唆したように)クロージャーを追加しようとしましたが、まったく同じ結果が得られました。
ありがとう。