2017-04-20 7 views
0

HTML, Javascript 및 Socrata를 사용하여 간단한 웹 페이지를 만들고 싶습니다. 이 Suzzara에서 화학자의 상점의 목록 (작은 이탈리아 도시) 인 내가 이메일 주소를 쓰기 원하는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의 consolle에서 : 1 array (5 objects) => OK를 봅니다.

어떻게 전자 메일의 주소를 표시 할 수 있습니까? 예 : 이메일 : [email protected] ... ... ... ...

답변

0

먼저 배열 (read more here)의 키를 통해 자바 스크립트의 '대 인'루프 반복이 아닌 각 배열 요소

두 번째로 JS는 AJAX 호출을 수행하므로 Socrata에서 데이터를 다시 받기 전에 현재 for 루프가 실행되므로 루프 할 필요가 없습니다. 따라서 .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

관련 문제