こんにちはみんな私は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();
値を保持するにはクロージャを作成する必要があります。