2016-04-06 234 views
0

我做了很多R & D,在stackoverflow和其他網站上也嘗試了很多問題,但無法理解我做錯了什麼。如果能幫我指出我錯在哪裏,我會非常感激。D3從JSON數據總是返回undefined

如果代碼在響應之前跳過,但不使用,也嘗試過。 Returning array from d3.json()

D3代碼

<!DOCTYPE html> 
<meta charset="utf-8"> 
<body> 
<script src="http://d3js.org/d3.v3.min.js"></script> 
<script> 
    d3.json("chart_data.php", function(error, data){ 
     json_Data = data; 
     console.log("Error:"+error); 
     console.log(json_Data); 
    }); 
</script> 
</body> 
</html> 

控制檯誤差

Error:SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data 

控制檯數據是

undefined 

如果我運行PHP文件直接在瀏覽器中我得到:

[{"value":"1","date":"2016-03-29"},{"value":"0","date":"2016-03-30"},{"value":"3","date":"2016-03-31"},{"value":"2","date":"2016-04-01"},{"value":"2","date":"2016-04-02"},{"value":"5","date":"2016-04-03"},{"value":"1","date":"2016-04-04"},{"value":"1","date":"2016-04-05"},{"value":"0","date":"2016-04-06"}] 

這是我的PHP

<?php 
require 'db_connection.php'; 
$sql = "SELECT `y-axis` as value, `x-axis` as date FROM site_data"; 
$result = $con->query($sql); 
$data = array(); 
if ($result->num_rows > 0) { 
    $count = 0; 
    while($row = $result->fetch_assoc()) { 
     $data[$count]['value'] = $row['value']; 
     $data[$count]['date'] = $row['date']; 
     $count++; 
    } 
} 
echo json_encode($data); 
$con->close(); 
?> 

數據庫連接文件

<?php 
$con = mysqli_connect("localhost","root","","analytic"); 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
?> 

PHP文件和D3文件在sa上我的目錄。

+0

您發佈的內容沒有任何問題。我猜測還有別的東西沒有發佈。 –

+0

除了這一切,只有db_connection文件。這就是爲什麼我也感到困惑,無處不在的代碼是相同的爲什麼不爲我運行 –

+0

爲什麼你想通過一個PHP文件作爲參數傳遞給d3.json()? – Keven

回答

0

不是傳遞一個PHP文件作爲參數傳遞給d3.json()試圖傳遞一個以.json文件:

d3.json("chart_data.json", function(error, data){ 
    json_Data = data; 
    console.log("Error:"+error); 
    console.log(json_Data); 
}); 

使用PHP從DB獲得的代碼,並將其轉換使用的東西,以JSON如json_encode。在.json文件中輸出數據。不要試圖直接從.php文件讀取json。

+0

你問我通過PHP編寫JSON文件,然後我可以閱讀JSON文件。我也可以選擇寫tsv文件,但我想知道爲什麼它不能這樣工作。無論如何感謝您的幫助我會投票一旦我將這個 –

+0

現在,只需嘗試手動創建一個單獨的.json文件來測試。只需將json放入並調用它即可。如果它有效,那麼你知道問題是什麼。如果沒有,返回到繪圖板。 – Keven

+0

一切正常問題是與我的機器:)。反正這個解決方案也不錯 –