2017-02-27 61 views
-1

我被Google圖表卡住了。
線圖顯示兩個值:TemperatureHumidity谷歌圖表 - 表格沒有列

自從我加入阿賈克斯我的圖表,它不會再加載和我得到的消息:

表沒有列。

這裏是我的代碼:

<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 data = new google.visualization.DataTable(<?php echo json_encode($table); ?>); 

然後你可以刪除舊var jsonData ...部分,並刪除json所有實例成功的功能。

+0

不,沒有任何改變 –

+0

非常感謝你,它的工作! –

+0

對不起,不能upvote呢,我沒有足夠的代表:( –