2016-04-06 137 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

一切正常问题是与我的机器:)。反正这个解决方案也不错 –