3

jsonエンコードを介してdbからスコアを返すphpを作成しました。フロットはそれらを望んでいないようです。firebug で返されるエラーはありません。だから私は立ち往生しています。私が得るのは空白のチャートだけです-

ここに画像の説明を入力

コード..

    <script type="text/javascript">

    $(function() {

        var options = {
             bars: {
                show: true
            }
        }

        $.plot("#placeholder", data, options);

        var iteration = 0;

        function fetchData() {

            ++iteration;

            function onDataReceived(series) {

                data = [ series ];

                $.plot("#placeholder", data, options);
            }

            $.ajax({
                url: "http://localhost/charts/data",
                type: "GET",
                dataType: "json",
                success: onDataReceived
            });

            if (iteration < 5) {
                setTimeout(fetchData, 10000);
            } else {
                data = [];
                alreadyFetched = {};
            }
        }
        fetchData();
        setTimeout(fetchData, 10000);



    });

    </script>
</head>
<body>

    <div id="header">
        <h2>AJAX</h2>
    </div>

    <div id="content">

        <div class="demo-container">
            <div id="placeholder" class="demo-placeholder"></div>
        </div>

    </div>


</body>
</html>

データを返すphpは

    $data = array(array('1999',3.0),array('2000',3.9),array('2001',2.0),array('2002',1.2)); 
    $array = array('label' => 'Scores','data'=>$data);
    echo json_encode(array($array));

そして戻りJsonは

[{"label":"Scores","data":[["1999",3],["2000",3.9],["2001",2],["2002",1.2]]}]
4

1 に答える 1

4

これは問題のあるコード行です。

data = [ series ]; // do not wrap in another array

あなたの JSON は、すでに必要なデータ形式になっています。

ここでフィドル。

于 2013-11-13T15:18:29.620 に答える