2017-02-27 4 views
-1

Google Chartsがついています。
線グラフには、TemperatureHumidityという2つの値が表示されます。Google Charts - テーブルに列がありません

私は私のチャートにAJAXを追加しましたので、それはもうロードしないと、私はメッセージを取得します:

表には列がありません。

は、ここに私のコードです:

<script type="text/javascript" src="https://www.google.com/jsapi"></script> 
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> 
<script type="text/javascript"> 
    var jsonData = <?php echo json_encode($table); ?>; 
    // Load the Visualization API and the piechart package. 
    google.charts.load('current', {'packages':['corechart']}); 
    // Set a callback to run when the Google Visualization API is loaded. 
    google.setOnLoadCallback(drawChart); 
    setInterval(drawChart, 10000); 
    function drawChart() { 
    $.ajax({ 
     url: 'getTemp.php', 
     type: 'get', 
     success: function (json) { 
     var data = new google.visualization.DataTable(json); 
     var options = { 
      title: 'Raspberry:', 
      curveType: 'function', 
      'height':400 
     }; 
     var chart = new google.visualization.LineChart(document.getElementById('chart_div')); 
     chart.draw(data, options); 
     } 
    }); 
    }; 
</script> 

編集:これは私のphpファイルです:getTemp.phpは、あなたが何かを必要とするなら、私に知らせてください。

$conn = new PDO("mysql:host=localhost;dbname=$dbname", $username, $password); 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

try { 
    $result = $conn->query('SELECT * FROM Device_Data'); 
    $rows = array(); 
    $table = array(); 
    $table['cols'] = array(
         array('label' => 'Timestamp', 'type' => 'string'), 
         array('label' => 'Temperature', 'type' => 'number'), 
         array('label' => 'Humidity', 'type' => 'number') 
        ); 
    foreach($result as $r) { 
     $data = array(); 
     $data[] = array('v' => (string) $r['Timestamp']); 
     $data[] = array('v' => (int) $r['Temperature']); 
     $data[] = array('v' => (int) $r['Humidity']); 
     $rows[] = array('c' => $data); 
    } 
    $table['rows'] = $rows; 
} catch(PDOException $e) { 
    echo 'ERROR: ' . $e->getMessage(); 
} 

try { 
    $result2 = $conn->prepare("SELECT 'Temperature','Humidity', 'Timestamp' from Device_Data;");  
    $result2->execute(); 
} catch(PDOException $e) { 
    echo 'ERROR: ' . $e->getMessage(); 
} 
+0

他にもこのコードブロックはどこにありますか? $ tableは事前に宣言されていますか? <?php変数がまだ作成されていない場合は、この質問を削除して物事を修正してください。 – mickmackusa

+0

私は私のPHPファイル、getTemp.phpを追加しました –

+0

'json'出力は何ですか? – Sojtin

答えて

1

編集/第二の試み:

私は、変数がスコープ外だと思います。

<?php echo json_encode($table); ?>を直接適用してください。

それは次のように見えるように:そして、あなたは古いvar jsonData ...一部を除去し、成功機能にjsonのすべてのインスタンスを削除することができます

var data = new google.visualization.DataTable(<?php echo json_encode($table); ?>); 

+0

いいえ、何も変更していません –

+0

ありがとう、それは働いた! –

+0

申し訳ありませんが、まだupvoteできません、私は十分な担当者がありません:( –

関連する問題