代码之家  ›  专栏  ›  技术社区  ›  Francis Katalinic

d3。使用d3通过ajax响应实现JSJSON。json()

  •  -1
  • Francis Katalinic  · 技术社区  · 7 年前

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

    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) {
    
    
        .......
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Francis Katalinic    7 年前

    原来我只需要更换d3线。json(“wheel.json”,…带有我的php脚本的url,并回显json响应。这样,我只需要编写d3.json(“..url/to/script/example.php,…;我必须从开关/案例中执行json的echo,否则它将不起作用。还有一件事:注意json的echo,如果它错误、损坏、数组太多,d3将无法识别它。为此,请使用json美化器。谢谢(?)