大家好我正在使用ajax从php检索数据,我想要做的是首先我找到在线用户列表,然后基于该列表我向服务器发出请求让我们说如果有2人被记录在那时我使用for循环来查找数字然后只为这2个用户获取数据这是我的JS代码。 #name等于记录的用户名,如果一个用户登录,则该用户的#name为1,其他用户为2,依此类推
$(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之后我正在警告相同的变量时它表示未定义。
您可以尝试使用此代码查看正在发生的事情并查看是否有任何方法
谢谢
答案 0 :(得分: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();
您需要形成一个闭包来保留值。
答案 1 :(得分:-1)
@ 3nigma更改变量名称不会有帮助或需要,并使其全局“可以”帮助但是一旦你转到循环中的下一个,它就会被覆盖。
@Shanon:我不确定这是做这种事情的最佳方法。我宁愿更新整个列表,然后对服务器进行一些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();
});