我已尝试过此代码的一些变体,但我在控制台中没有出现任何错误消息而停滞不前。现在,它应该非常简单,主要来自Mike Dewar的D3.js入门。我做了一些改变,我认为它正在炸毁(对不起,迈克,我确定这是我的坏事)。
首先,我有一个php文件,当我打开它时可以工作: {"名称":1,"状态":2" URL":3,"时间&#34:4,"天& #34;:5}
回复它的代码称为' jsonphp.php':
<?php
$arr = array('name' => 1, 'status' => 2, 'url' => 3, 'time' => 4, 'day' => 5);
echo json_encode($arr);
?>
然后我只想引用它并(作为测试)在表中显示它。这是一个名为&#39; d3test.htm&#39;
的文件<!DOCTYPE html>
<html>
<head>
<meta charset = 'utf-8'>
<script src='d3.v2.min.js'></script>
<script>
function draw(data){
'use strict';
d3.select('body')
.append('ul')
.selectAll('li')
.data(data)
.enter()
.append('li')
.text(function(data){
return data.name + ': '+ data.status;
});
}
</script>
</head>
<body>
<script>
d3.json('jsonphp.php', draw);
</script>
</body>
</html>
我尝试了一些变体,比如重命名json标题,试图获得&#39; draw&#39;沿着一个变量运行(是的,我有点知道它不会起作用)我认为也许D3.js并不喜欢这个文件以“php&#39;”结尾的事实。没有收到错误,我觉得它认为它有效,所以也许不是。这应该是如此简单,我知道如果我能做到这一点,我可以执行更复杂的输出,但它只是千里之旅的第一步。 BTW尝试在IE 9和Safari 5.1.7中运行它,结果相同。提前谢谢!
ADDENDUM DEC 5 :我尝试在html文档中提醒jsonphp.php文件的长度,并且未定义&#39;。但是,我尝试使用另一个带有js扩展名的测试文件但没有任何内容,但是这个([{"a":"-1.14","b":"4.14"},{"a":"-0.13","b":"1.38"},{"a":"-4.19","b":"1.43"},{"a":"-0.21","b":"3.34"}])
并且它提醒了正确的数字(4)。同样使用测试我可视化工作正常。所以问题是D3.js不喜欢php文件,或者php文件的问题,即使看起来确定。
答案 0 :(得分:1)
尝试在PHP中设置Content-Type标头:
header("Content-Type: application/json");
在致电json_encode
之前