2016-05-13 76 views
1

我正在嘗試使用php連接postgres並使用d3.js可視化數據。我成功地將數據編碼爲json,但是當我想通過使用d3.js加載數據時,有一個SyntaxError:意外的令牌<,位於位置0的JSON中(...) index.html:12未定義。使用php連接postgres並使用d3.js可視化

這裏是我的PHP代碼:

$db_connection = pg_connect("host=localhost dbname=xxx user=xxx  password=xxx"); 
    $result = pg_query($db_connection, "SELECT * FROM taxi_stats.satisfy"); 
    $data = array(); 
    while ($row = pg_fetch_array($result)) 
    { 
     $data[] = $row; 
    } 
    echo json_encode($data); 
    pg_close($db_connection); 

對於d3.js

<script> 
d3.json("data.php", function(error, data) { 
    if(error){ 
     console.log(error); 
    } 
    console.log(data); 
}); 
</script> 
+0

'SyntaxError:意外的標記<':根據我的經驗和這裏的答案,這是一個PHP錯誤或警告獲取回傳給javascript而不是json。檢查你的php_error.log。 http://stackoverflow.com/questions/18561556/syntax-error-unexpected-token – mgraham

回答

0

變化從 '文/ JavaScript的' 到 'text/html的' 標題的內容類型。

或者它可能是一個令牌'>'不包含單引號或雙引號的錯誤。

+0

它不適合我,我在編碼的json沒有錯誤。當我將編碼的json複製並粘貼到json文件並使用d3加載它時,我可以成功獲取數據。我認爲加載php作爲數據源時會發生一些事情。 –

0

最後我想通了。 添加一行php header('Content-type:application/json; charset = utf-8'); 適合我。