2015-10-01 20 views
0

我有一個函數,使2 getjson調用,並寫入響應數組。我用下面的代碼在我的第二個的getJSON調用結束:如何在getjson調用結束時顯示數組內容?

alert(files.length); 
print_r(files); 
console.log(files); 

然而,files.length告訴我的陣列,但的print_r(文件)項目的數量;和console.log不工作?我想打印數組項目以確認我得到正確的項目,但數組打印不起作用! ?可以在任何一個可以告訴我怎麼解決這個問題(我的目標是以後排序這個數組並刪除重複和過濾器......)

<script> 
    var files = new Array(); 

     function pushtoArray(){ 

    //first getjson call 
    var url1 = "https://spreadsheets.google.com/feeds/list/xxxxx/xxxxx/public/values?alt=json"; 
     $.getJSON(url1, function(data) { 

      var entry = data.feed.entry; 

      $(entry).each(function(){ 
      // Column names are name, age, etc. 
     count++; 
     files.push({ url: this.gsx$url.$t, filename: this.gsx$name.$t }); 

      $('.results').prepend('<h2>'+this.gsx$name.$t+'</h2><p>'+this.gsx$url.$t+'</p>'); 

      }); 

     alert(files.length); 
     print_r(files); 
     console.log(files); 
     });//end of ajax call 

    //second getjson call 
var url2 = "https://spreadsheets.google.com/feeds/list/xxxxx/xxxxx/public/values?alt=json"; 
     $.getJSON(url2, function(data) { 

      var entry = data.feed.entry; 

      $(entry).each(function(){ 
      // Column names are name, age, etc. 
     count++; 
     files.push({ url: this.gsx$url.$t, filename: this.gsx$name.$t }); 

      $('.results').prepend('<h2>'+this.gsx$name.$t+'</h2><p>'+this.gsx$url.$t+'</p>'); 

      }); 

     alert(files.length); 
     print_r(files); 
     console.log(files); 
     });//end of ajax call 


     };//end of function 

    </javascript> 

的html代碼:

<body onload="pushtoArray()"> 

回答

1

print_r的是PHP函數,在javascript中你只能使用console.log。

+0

感謝您的回覆。我如何使用ajax之外的數組?例如在另一個功能? – user1788736

+0

爲此,我想你應該把它放在一個非局部變量中。 (局部變量具有前綴「var」)。 您應該記住,Ajax調用是異步的,因此getJSON和ajax調用結束之間的代碼會比腳本中的其他代碼執行得晚一點(因爲它在啓動Ajax時會繼續執行-呼叫)。 –

+0

如何在發送數組到另一個函數之前等待所有多個getjson調用完成? – user1788736

相關問題