2011-09-07 58 views
0

嗨,大家好我是从php使用ajax检索数据,我想要做的是首先我找到在线用户列表,然后基于该列表我向服务器发出请求让我说如果2人登录,然后我使用循环找到数字,然后获取数据只有这2个用户这里是我的JS代码。 #NAME等于登录用户名,如果一个用户在#NAME针对该用户登录将1对其它这将是2等jquery ajax发布函数

$(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

你用萤火虫/镀铬控制台/ etc等检查请求状态 – yzk

+0

是的,我在萤火虫中发送了两个名字到我的php,问题是在做出ajax请求后它不识别轨道变量,因为我的数据发送是在ajax请求之前定义的,如果你会注意到parameter ='send_to ='+ track在ajax请求之前,所以track var同时具有这两个名字,但是在undefined之后 – Shanon

+0

尝试在循环 – yzk

回答

-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(); 

}); 
+0

特别感谢你] – Shanon

+0

他的答案奏效,所以我不知道为什么-1 – Shanon

+0

那么我编辑,因为我没有写任何代码之前,和@Interstellar_Coder解释也更好。 – voigtan

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(); 

你需要形成一个封闭保存价值。