2017-04-20 21 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