0

Highchartで何が間違っているのか理解できません。json配列を読み取ることになっています(実際には日付とay値を使用してグラフにプロットします。しかし、グラフにプロットするポイントを取得できないようです。何が間違っているのでしょうか。

phpコード:

$statement = "select count(title) from node where title like 'WEN%'";
$result = mysql_query($statement);
while ($row = mysql_fetch_array($result)) {
   $data = $row['count(title)'];
}

$x = time() * 1000;
$y = $data;

$array = array($x,$y);

echo json_encode($array);

html / javascriptコード:

   <p>Chart</p>
    <div id="container" style="min-width: 400px; height: 400px; margin: 0 auto">

     <script>
    function requestData() {
       jQuery.ajax({
            url: 'queryp.php',
            datatype: 'json',
            success: function(point)  {
                var series = chart.series[0];

                // add the point
                chart.series[0].addPoint(point, true);

                // call it again after one second
                setTimeout(requestData, 5000);    
            },
            cache: false
        });

    }

    </script>  

    <script type="text/javascript">

    jQuery(function () {
        jQuery(document).ready(function() {
            Highcharts.setOptions({
                global: {
                    useUTC: false
                }
            });

            chart = new Highcharts.Chart({
                chart: {
                    renderTo: 'container',
                    type: 'spline',
                    marginRight: 10,
                    events: {
                        load: requestData

                    }
                },
                title: {
                    text: 'Live Query Data'
                },
                xAxis: {
                    type: 'datetime',
                    tickPixelInterval: 150
                },
                yAxis: {
                    title: {
                        text: 'Value'
                    },
                    plotLines: [{
                        value: 0,
                        width: 1,
                        color: '#808080'
                    }]
                },
                legend: {
                    enabled: true
                },
                exporting: {
                    enabled: false
                },
                series: [{
                    name: 'Query Data',
                    data: []
                }]
            });
        });

    });

    </script>

    </div> 
4

2 に答える 2

0

series[0]オブジェクトには という名前のメソッドがありません。addPointコンソールにこれが表示されるはずです。

data配列に追加したい場合は、単に使用してくださいpush

chart.series[0].data.push(point[1]);
于 2013-02-11T13:12:39.970 に答える
0

問題は、まだ準備ができていないチャート変数を参照していることです-ロードイベントハンドラーを使用しています。次のようなものを使用します。

function requestData() {
    var series;
    if(chart.series[0]){
        /* all other cases load chart */
        series = chart.series[0];
    } else { 
        /* first load chart */
        series = this.series[0];
    }  
    jQuery.ajax({
        url: 'queryp.php',
        datatype: 'json',
        success: function(point)  {
            series.addPoint(point, true);
            setTimeout(requestData, 5000);   
         }
    });
}

また、値が数値であることを確認してください。文字列ではありません。

于 2013-02-11T13:52:29.093 に答える