d3.js JSON 通过 ajax 响应使用 d3.json()



>我对d3来说很陌生.js我想学习如何使用它。我正在尝试实现此示例:https://www.jasondavies.com/coffee-wheel/. 此示例使用来自名为"wheel.json"的 json 脚本的一组数据。现在,我想知道的是是否可以使用 ajax 请求的 json 数据(它请求 php 文件),这样我就可以直接从数据库中查看数据,并且每次数据库值更改时图形数据都会更新。它通过对php脚本执行$.ajax jquery来工作,为方法调用特定的案例。

PHP代码:

switch ($strMetodo) {
case('listBananas'): //controlling what I need to list
$arrayBananasTO = BananaController::listBananas(
$QueryParameters); //fetch all Bananas from DAO and store them in an array
$row = CBananasCommon::iterateListBananas($arrayBananasTO); //fetch the array, and 
store each value to a row in a datatable
$output['data'] = $row; //store fetched array, and naming json's array container as 'data'
echo json_encode(utf8ize($output)); //echoing json

break;
case('listApples'):
$codBananaObtenido = $_POST['idBanana'];
$arrayApplesTO = AppleController::listApples(
$QueryParameters);
$row = CApplesCommon::iterateListApples(
$arrayApplesTO);
$output['data'] = $row;
echo json_encode(utf8ize($output));
break;

}

JS代码:

d3.json($.ajax({
url: "..url/to/script/example.php",
"type": "POST",
"data": {method: "listBananas"},
"success": function (output) {
return output;
}}), function (r, i) {
function l(n) {

.......

原来我只需要替换行d3.json("wheel.json",... 使用我的 PHP 脚本的 URL 并回显 JSON 响应。这样,我只需要编写 d3.json("../url/to/script/example.php,...;而且我必须从开关/案例中执行 json 的回声,否则它将无法正常工作。还有一件事:密切关注 json 的回声,如果它错误、损坏、太多的 Array-ish,它不会被 d3 识别。为此,请使用 json 美化器。谢谢(?

最新更新