2015-09-28 49 views
-2

getLocations.php的結果是id爲& LocationName的json結果。我創建了一個連接結果,因爲還有其他數據被返回。迭代通過ajax結果和變量不是預期的

{"1:LocationA":{"lat":"38.8737","lon":"-77.013"},"2:LocationB":{"lat":"38.9002","lon":"-77.0365"} 


    $.ajax({ 
      type:"GET", 
      url:"getLocations.php", 
      dataType:"json", 
      success:function(result){ 
        $.each(result,function(e,i){ 
          var titleLong = e.split("&"); 
          title = titleLong[1]; 
          id = titleLong[0]; 
          alert(title) // 1st alert 
          $.ajax({ 
            type:"GET", 
            data:"id="+id, 
            url:"getData.php", 
            success:function(result){ 
             alert(title) //2nd alert 

爲什麼犯規標題移值到第二Ajax調用。如果你看第一次警報,這是我所期望的。在每個循環中檢索到的變量。如果你看第二條警報,它只是每個循環的最後一個結果(LocationB)....我的猜測是一個異步的事情...我已經嘗試了兩個異步:true和false。

我失蹤了什麼?

+0

你應該嘗試使用'的console.log()'如果可能,而不是警告 – cmorrissey

回答

5

通過聲明title而不使用var,您聲明它是一個全局變量。如果添加var它會成爲一個局部變量,每個內部AJAX調用都會有自己的變量關閉:

var title = titleLong[1]; 
+0

我喜歡當它簡單! – bart2puck