0

我正在编写一个脚本,该脚本通过 PHP 从数据库中获取数据,然后将其传递给另一个脚本,该脚本将数据用作高图表的输入(条形钻取)。使用 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
   });

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

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。

4

2 回答 2

1

我认为你必须更换这个:

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

echo json_encode($array);

如果您需要将“回调”数组与 $array 连接起来,您必须以编程方式进行,而不是像字符串一样对待......

希望这可以帮助。

于 2013-04-15T16:04:48.040 回答
1

如果预期的格式是:[{...}]那么您上面的示例不是缺少最外层的数组吗?当前返回的 PHP 数据是{...}.

这可以在 PHP 中解决:

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

或者在 JS 中使用:

data = [input]
于 2013-04-14T01:15:28.770 回答