/ / JQuery ajaxポスト関数 - jquery、ajax

Jquery ajaxポスト関数 - jquery、ajax

こんにちはみんな私はPHPからajaxを使用してデータを取得しています私が何をしようとしているのは、最初に私はオンラインユーザーのリストを探していますし、そのリストに基づいて私は2人がログインしている場合、私は数字を見つけるためにループを使用しているここでは2人のユーザーだけのデータを取得しています。私のJSコードです。#nameはログオンしたユーザー名と同じです.1人のユーザーがログインしている場合はそのユーザーの#nameは1になります。

    $(function(){
function liveRefresh(){
var count = 1;

for(x=0; x<=count; x++)
{
var track = $("#name" + x).val();

alert(track);

parameters = "send_to=" + track;

$.ajax({
url: "scripts/live-refresh.php",
type: "POST",
data: parameters,
cache: false,
success: function(html){

alert(track);
}
});
}
}

liveRefresh();

});

もし私がajaxリクエストの前に変数を警告すると、それは私にすべての名前を表示しますが、同じ変数を警告しているときにajaxを作成した後は定義されていません。

このコードを試して、何が起こっているかを見て、周りに何かがあるかどうかを確認することができます

ありがとうございました

回答:

回答№1の場合は-1

変数名を変更するための@ 3nigmaは、ヘルプや必要がなくなり、グローバルにすることができます "助ける"ことができますが、ループの次のものに行くとすぐに上書きされます。

@シャノン:これは、この種のことを行うための最良のアプローチであるかどうかはわかりません。私はむしろリスト全体を更新してから、サーバーへのAJAX呼び出しをいくつか行います。

あなたがそれを好きに実行したいなら、これはうまくいくはずです:

$(function(){
var callAjax = function(id) {
var parameters = "send_to=" + id;

$.ajax({
url: "scripts/live-refresh.php",
type: "POST",
data: parameters,
cache: false,
success: function(html){
alert(id);
}
});
},
liveRefresh = function() {
var count = 1;
for(var x=0;x<=count;x++) {
var track = $("#name" + x).val();

callAjax(track);
}

};

liveRefresh();

});

回答№2の場合は1
$(function(){
function liveRefresh(){
var count = 1;

for(var x = 0 ; x <= count; x++)
{
var track = $("#name" + x).val();
do_ajax( parameters, track );
}
}

function do_ajax( parameters, track )
{
$.ajax({
url: "scripts/live-refresh.php",
type: "POST",
data: parameters,
cache: false,
success: function(html){
alert(track);
}
});
}

liveRefresh();

値を保持するにはクロージャを作成する必要があります。