2017-04-20 4 views
0

HTML、Javascript、Socrataを使って簡単なWebページを作成したい。そこスッザーラにおける化学者の店のリスト(小さなイタリアの都市)があると私は電子メールアドレスを書きたい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つのオブジェクト)=> OKを参照してください。

電子メールのアドレスはどのように表示できますか? 例: メール:[email protected] ... ... ... ...

答えて

0

まず、配列のキーを通してJavaScriptの者 "に対する-の" ループ繰り返し処理(read more here)ではなく、各配列の要素。

第2に、JSはAJAX呼び出しを実行しているため、現在のforループは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

関連する問題