2017-04-20 44 views
0

我想用HTML,Javascript和Socrata開發一個簡單的網頁。如何從consumer.query()獲取數據?

我寫此頁:

<body> 
    <script src="../lib/soda-js.bundle.js"></script> 
    <script> 
     var consumer = new soda.Consumer('dati.lombardia.it'); 
     consumer.query() 
      .withDataset('mmyz-duph') 
      .limit(100) 
      .where({ localita : "Suzzara" }) 
      .getRows() 
       .on('success', function(rows) { console.log(rows); alert('Ok'); }) 
       .on('error', function(error) { console.error(error); alert('Ci sono problemi'); }); 



     var righe = consumer.query() 
         .withDataset('mmyz-duph') 
         .limit(100) 
         .where({ localita : "Suzzara" }) 
         .getRows(); 

     /* 
      --- Don't work! --- 
     for (item in righe) { 
      document.write("Email: "); 
      document.write(item.email); 
      document.write('<br>'); 
     }; 
     */ 

     document.write('<br>'); 
     document.write('Ho finito di elaborare i dati'); 
    </script> 
</body> 

還有就是在蘇扎拉化學家的商店名單(小意大利城市),我想寫的電子郵件地址(有5個店)。 從Firefox的支持:我看到1個數組(5個對象)=>確定。

我怎樣才能顯示電子郵件的地址? 實施例: 電子郵件:[email protected] ... ... ... ...

回答

0

首先,JavaScript的 「換在」 通過陣列(read more here)的鍵循環迭代,而不是每個數組的元素。

其次,你的JS是執行AJAX調用所以你當前的循環將被執行之前,你甚至有數據從Socrata回來,所以會是什麼遍歷。這就是爲什麼使用.on()功能,讓您可以一次返回的數據中執行代碼。

var consumer = new soda.Consumer('dati.lombardia.it'); 
consumer.query() 
    .withDataset('mmyz-duph') 
    .limit(100) 
    .where({ localita : "Suzzara" }) 
    .getRows() 
    .on('success', function(rows) { 
    // since you're using a for-in loop, this is how it'd work 
    for (i in rows) { 
     console.log(rows[i]['email']); 
    } 
    }) 
    .on('error', function(error) { console.error(error); }); 
+0

謝謝!做得好! – David