0

PHP を介してデータベースからデータを取得し、それを別のスクリプトに渡します。このスクリプトは、そのデータをハイ チャート (バー ドリルダウン) への入力として使用しています。データは JSON 配列を使用して送信されます。次のような 2 つのファイルがあります。

サーバー側:

 <?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

予想される形式が次の場合:[{...}]上記の例では、最も外側の配列が欠落していませんか? 現在返されている PHP データは{...}.

これは、PHP で次のように解決できます。

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

またはJSで:

data = [input]
于 2013-04-14T01:15:28.770 に答える
1

これを置き換える必要があると思います:

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

echo json_encode($array);

「コールバック」配列を $array に結合する必要がある場合は、文字列のように扱わずにプログラムで行う必要があります....

お役に立てれば。

于 2013-04-15T16:04:48.040 に答える