2016-12-06 8 views
1

JSONファイルからデータを取得して、グラフを描画するJavaScriptファイルがあります。 correcly描くあなたがグラフを見ることができるようにJSONからJavaScriptに値を取得

$(document).ready(function(){ 
    google.charts.load('current', {'packages': ['corechart']}); 
    //alert('aa00'~ 
    $('.error').hide(); 
    $(".buttonSala").click(function() { 
    // validate and process form here 
    $('.error').hide(); 
    var canal = $("#canalSala option:selected").val(); 
    var datai = $("#datainisala").val(); 
    var dataf = $("#datafimsala").val(); 

    //alert(canal); 
    // Send the data using post 
    var posting = $.post("getSala.php", { canal: canal, dataini: datai, datafim: dataf }); 

    // Put the results in a div 
    posting.done(
     function(data) { 
     // Set a callback to run when the Google Visualization API is loaded. 

     var jsonData = JSON.parse(data).channels[canal].values; 
     google.charts.setOnLoadCallback(function() { 
      var dataArray = [["ts", 'values']]; 

      for (var i = 0; i < jsonData.length; i++) { 
      var tempArray = [jsonData[i].ts, parseFloat(jsonData[i].value.replace(",", "."))]; 
      dataArray.push(tempArray); 
      } 

      // Create our data table out of JSON data loaded from server. 
      var data = google.visualization.arrayToDataTable(
      dataArray 
     ); 

      var options = { 
      hAxis: {title: "Data/Hora", titleTextStyle: {color: "#333"}}, 
      vAxis: {title: "Temperatura", titleTextStyle: {color: "#333"}} 
      }; 

      // Instantiate and draw our chart, passing in some options. 
      var chart = new google.visualization.AreaChart(document.getElementById('chart_divsala')); 
      chart.draw(data, options); 
     }); 
     }); 
    return false; 
    }); 
}); 

されています:

ここ

enter image description here

は私のJavaScriptコードは、グラフを描画することです。ここで

はJSONファイルです enter image description here

このパーツでは:

var dataArray = [['ts', 'values']]; 

それは引くためにTSデータを使用し、「値が」左側に、グラフ上に表示されるものであり、ラインの説明に。どのように私はJSONのproprety "chname"にアクセスしてグラフの説明にその情報を入力できますか?この場合、 "oxigénio(%)no interior do pipo de madeira 4"と表示されます。

答えて

0

あなたはobjは、JSONファイルからオブジェクト全体でresponse.channels[canal].info.chname、とJSONのプロパティchnameにアクセスすることができます。だから、

、これらの行に置き換えます。これで

var jsonData = JSON.parse(data).channels[canal].values; 
google.charts.setOnLoadCallback(function() { 
    var dataArray = [["ts", 'values']]; 

を:あなたはおそらく、私がやってみたかったものを得るdidntの

var response = JSON.parse(data); 
var jsonData = response.channels[canal].values; 
var desciption = response.channels[canal].info.chname; 
google.charts.setOnLoadCallback(function() { 
    dataArray = [["ts", desciption ]]; 
+0

それは仕事をdoesntの、グラフは次のように描くされていませんそれは... – Emerenciana

+0

'jsonData = jsonData.channels [2] .values; 'で' jsonData'を上書きしていることに気付かなかった。私の更新された答えが働くはずです。 – asemahle

+0

まだ動作していません。 jsonデータを取得するカールを変更するためにいくつかの変数を使用していたので、私は私の更新されたものと一致するようにスクリプトを更新しました。しかし、基本的に同じです。 response.channels [2] .info.chnameの代わりに私はresponse.channels [canal] .info.chnameを試しました。それは現在の運河を含む変数の名前ですが、運がまだありません@asemahle – Emerenciana

0

あなたはJSONデータ型とAJAXを使用

私はすべてを試みたし、私はそれが仕事を得るカント...。データはオブジェクトに戻ります。私の場合は、成功を追加して、リクエストが成功するとデータを取得します。たとえば:

$.ajax({ 
    url: "getData.php", 
    type: 'GET', 
    dataType : "json", 
    success: function (data) { 
    data.forEach(function(object){ 
     //your code logic here 

    }); 
    } 
}); 
+0

... – Emerenciana

関連する問題