サーバーからいくつかの結果を取得するために、ループで jQuery "GET" を使用しています。ループ インデックスをコールバックの固定パラメーターとして含めたいのですが、機能しません。
(私はそれを行う方法についてこの記事のアドバイスに従いました。)
ただし、コールバックで取得した値は、期待したものとはまったく異なります。各ループ インデックス値ではなく、常にインデックスの終了値と同じです。
すなわち。このコード フラグメントは、コールバックの実行ごとに「16」を出力します。1、2、3...を印刷するにはどうすればよいですか(順序が異なる場合があることは理解していますが、それで問題ありません)
以下のコードに加えて、コールバック関数を指定するいくつかの方法を試しました。function(data, textStatus) { return test(data, textStatus, idx); }, 'text');
等
これはどのように機能するはずですか?
function test(data, textStatus, siteNo)
{
console.log("siteNo=" + siteNo);
}
function loadConfigLists()
{
var siteReport;
// retrieve site configuration
jQuery.get("svGetSiteConfig.php", function(data, textStatus)
{
// retrieve port configuration for all sites
for (var idx=1; idx<=15; idx++)
{
var probeIP = siteConfigArray[idx].siteIP;
if (probeIP != "" && probeIP != null)
jQuery.get("svGetPortInfo.php?svSiteIpAddr=" + probeIP+"&s="+idx,
function(data, textStatus) { test(data, textStatus, idx); }, 'text');
else // IP value is blank
siteConfigArray[idx].portManifest = null;
}
}
}, 'text');
}