2017-12-21 10 views
1

Googleの視覚化テーブルで、Ajaxレスポンスを反復処理することでlongの別のセットを追加しようとしていますが、レスポンスの最後の値だけに見えます行、Googleデータ視覚化テーブルに行を追加する

Javascriptを:あなたは、データ構造あなたが反復するたびに再構築しているように見えます

data = [[37.6153, -122.3900, 'Airport'], 
            [37.4422, -122.1731, 'Shopping'],] 

答えて

1

$.ajax({ 
      type: 'GET', 
      url: '/api/v1.0/tasks/'+document.getElementById("autocomplete").value, 
      dataType: 'json', 
      data: { 'value' : $(this).val() }, 
      success : function(data){ 

      for(var i=0; i<data.task.length; i++) { 

      var lat,long,name; 
      var lat = data.task[i].lat 
      var longi = data.task[i].longi 
       var name = data.task[i].markerText 
      alert(lat,longi,name) 
      var datag = new google.visualization.DataTable(); 
       datag.addColumn('number', 'lat'); 
       datag.addColumn('number', 'longi'); 
       datag.addColumn('string', 'markerstr'); 
       datag.addRows([[lat,longi,name],]); 
     } 

}) 

は出力期待します。あなたのヘッダーは同じです。しかし、この場合、データ全体が各反復で書き直されます。おそらく、このようなものを試してみてください。

$.ajax({ 
     type: 'GET', 
     url: '/api/v1.0/tasks/'+document.getElementById("autocomplete").value, 
     dataType: 'json', 
     data: { 'value' : $(this).val() }, 
     success : function(data){ 


     var datag = new google.visualization.DataTable(); 
      datag.addColumn('number', 'lat'); 
      datag.addColumn('number', 'longi'); 
      datag.addColumn('string', 'markerstr'); 
     var rows = [] 
     for(var i=0; i<data.task.length; i++) { 

     var lat,long,name; 
     var lat = data.task[i].lat 
     var longi = data.task[i].longi 
     var name = data.task[i].markerText 
     rows.push([lat,longi,name]); 
    } 
     datag.addRows(rows); 
}) 
+0

うんそれは間違いだが、それは問題が解決しない、私はまだAddRowsを配列が完全に最初に構築し、一度追加する必要があることを意味している。..マップ – min2bro

+0

のErmにのみ、最後のマーカーを見ることができます最後に、多分。私は再びコードを更新しました。 –

関連する問題