目前代码工作正常。我只想为每个用户提供不同的树形图。所以我必须在getData.php中传递$ user,以便根据此用户创建json数据,然后创建图表。 $ user用于getData.php中的mysql select语句,用于从数据库中选择数据,然后将所选数据转换为json。
请告诉我如何将$ user作为回调函数传递给d3函数。我的资源不足!!
var queryString = window.location.search;
var url = "d3js/getData.php" + queryString;
d3.json(url, function(error, treeData) {
console.log(treeData)
root = treeData[0];
update(root);
});
在getData.php的末尾有
header('Content-Type: application/json');
echo json_encode($tree);
所以我猜php文件的输出是json数据
答案 0 :(得分:1)
d3.json
function is used to get the data from a json file which doesn't work for PHP files which returns response other than json format.
You can use d3-request API. On call back - you can render your graph: Example:
var url = "d3js/getData.php" + window.location.search;
d3.request(url)
.get(function(error, treeData) {
console.log(treeData)
root = treeData[0];
update(root);
});
Reference: https://github.com/d3/d3-request/blob/master/README.md#request
的'aria-label'属性答案 1 :(得分:1)
d3.json("api.php", function(error, data) {
data.forEach(function(d) {
loop your datas;
});
了解更多信息
https://phpro.org/tutorials/Creating-Graphs-With-PHP-MySQL-D3JS.html
https://nyquist212.wordpress.com/2014/04/09/d3-js-live-dashboard-example/
http://www.d3noob.org/2013/02/using-mysql-database-as-source-of-data.html
答案 2 :(得分:0)
首先,您需要将数据导出到json文件,例如data.json
d3.json()期望json文件不是php文件。
d3.json("data.json", function(error, data) {
if (error) throw error;
...
});
答案 3 :(得分:0)
我使用的代码是:
function upL(l_id) {
d3.json("lsel.php?l_id=" + l_id, function(error, gr) {
if (error) {
return console.error(error)
} else
console.log(gr);
draw(gr)
}).header("Content-Type", "application/x-www-form-urlencoded")//this bit might be necessary
}
function draw(gr){create graph...}
(l_id是用户选择的变量)
所以你看起来没问题,尝试添加内容类型(.header(...)),如果treeData被记录到控制台,问题可能就是你访问它的方式。
答案 4 :(得分:0)
您还可以使用该功能来映射您的值:
d3.layout.stack()(['value'].map((value) => {
return data.map((d: any) => {
return { x: obj[d.xAxis], y: d.value };
});
}));
您还可以在此处查看更多示例 -