我试图用d3绘制mysql数据。我使用PHP转换为json格式,但它还没有工作!出于测试目的,我按照指示的步骤进行了here 我在XAMPP上使用了simple-graph.html和我自己的php文件。
include('connect.php');
$result=$con->query("SELECT date, close FROM testable");
echo json_encode($result->fetchAll(PDO::FETCH_ASSOC));
它以json格式回声:[{"date":"1-May-12","close":"43.32"},{"date":"30-Apr-12","close":"22.54"},{"date":"27-Apr-12","close":"21.54"},{"date":"25-Apr-12","close":"21.42"}]
当我提供json文件但不提供php文件时,会显示图形。
这有效:
d3.json("json.json", function(error, data) {
data.forEach(function(d) {
d.date =parseDate(d.date);
d.close = +d.close;
});
这不起作用:
d3.json("tablecreate.php", function(error, data) {
data.forEach(function(d) {
d.date =parseDate(d.date);
d.close = +d.close;
});
所有文件都在同一个文件夹中。
有人可以说明我的错误吗?
答案 0 :(得分:0)
您尚未提供有关如何将json输出发送到d3脚本的完整php源代码。如果您没有发送正确的内容类型标题,则会出现一个问题。以下是d3的API参考中的一些内容。
使用mime在指定的url处创建对JSON文件的请求 输入“application / json”。如果指定了回调,则请求为 立即发布了GET方法,并将回调 加载文件或请求失败时异步调用; 使用两个参数调用回调:错误(如果有)和 解析了JSON。如果发生错误,则解析的JSON未定义。如果不 指定了回调,可以使用返回的请求发出 xhr.get或类似,并使用xhr.on。
处理
确保在回显json输出之前发出了以下语句。
header("Content-Type: application/json");