【发布时间】:2013-07-04 12:40:23
【问题描述】:
我正在尝试用 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;
});
所有文件都在同一个文件夹中。
有人可以指出我的错误吗?
【问题讨论】:
-
当你说它不起作用时,你是什么意思?您是否收到错误或没有显示您希望显示的内容?检查您的 PHP 脚本的输出是您期望的 JSON(并且只有 JSON)。
-
我得到一个空白页。抱歉忘记了
-
作为测试,您能否在浏览器中运行您的 php 脚本,然后获取回显的结果,将它们保存在一个名为 xxx.json 的文件中,然后让页面打开该 json?只是想消除返回数据的过程破坏数据的任何可能性。
-
是的,我已经做到了,而且确实有效。所以php应该没有问题。 XAMPP 会不会有权限问题?
-
应该没有权限问题。如果您可以将'tablecreate.php' url 放在url 栏中并在屏幕上返回回显的数据,那么应该没问题。您是否尝试过使用控制台来确定脚本中是否存在错误(developers.google.com/chrome-developer-tools/docs/console)?