Php到JSON通过高级图表

时间:2013-04-14 00:49:30

标签: php javascript json highcharts

我正在开发一个脚本,它通过PHP从数据库获取数据,然后将其传递给另一个脚本,该脚本使用数据作为高图表的输入(bar drilldown)。使用JSON数组发送数据。我有两个文件如下:

在服务器端:

 <?php
header("content-type: application/json"); 

    $array = array(

                        "y" => array(44.11),

                        "color" => array( "colors" => array(0)),

                        "drilldown" => array(

                                "name" => array("MSIE versions"),

                                "categories" => array("MSIE 6.0","MSIE 7.0","MSIE 8.0", "MSIE 9.0"),    

                                "data" => array(1,2,3,5,6),

                                "color" => array("colors" => array(0))

                        )


        );

     echo $_GET['callback']. '('. json_encode($array) . ')';    

    ?>

在客户端:

$(document).ready(function() {

        var colors = Highcharts.getOptions().colors,
            categories = ['MSIE', 'Firefox', 'Chrome', 'Safari', 'Opera'],
            name = 'Browser brands',
            data = [{}];

    var url =  "php/live-server-data.php?callback=?";
    $.getJSON(url,  function(input) {

    data = input
   });

High图表需要的输入格式(以及我尝试重新创建的内容)是:

data = [{
                    y: 55.11,
                    color: colors[0],
                    drilldown: {
                        name: 'MSIE versions',
                        categories: ['MSIE 6.0', 'MSIE 7.0', 'MSIE 8.0', 'MSIE 9.0'],
                        data: [10.85, 7.35, 33.06, 2.81],
                        color: colors[0]
                    }}]
            });

我没有让它工作,任何人都可以帮助我看看我做了什么错误?非常适合任何帮助。我被困了

BR。

2 个答案:

答案 0 :(得分:1)

如果预期的格式是:[{...}]那么上面的例子是不是错过了最外面的数组?当前返回的PHP数据是{...}

这可以在PHP中解决:

echo $_GET['callback']. '(['. json_encode($array) . '])';

或者在JS中:

data = [input]

答案 1 :(得分:1)

我认为你必须更换它:

echo $_GET['callback']. '('. json_encode($array) . ')';

使用

echo json_encode($array);

如果你需要使用$ array加入“callback”数组,你必须以编程方式执行而不是像字符串一样处理....

希望这会有所帮助。