1

jsonを呼び出すデータベースのデータを使用してグラフを作成しようとしていますが、グラフに結果が表示されません。これまでの私のコードは次のとおりです。

$(document).ready(function() {
function requestData() {
$.ajax({
        url: 'data.php',
        datatype: 'json',
        success: function(data) {
        alert(data);
        chart.series[0].setData(data[0]);
        },
        cache: false
    });
}
var chart;
chart = new Highcharts.Chart({
    chart: {
            renderTo: 'container',
            type: 'line',
            events: {
               load: requestData
            }
            },
    xAxis: {
  },
  yAxis: {
     title: {
        text: 'Value'
     }
  },

series: [{
         name: 'Random data',
         data: []
            }]
});

});

そしてこれが私のdata.phpコードです

$query = "SELECT tiempo,Fp1Ref 
        FROM GraficaEEG limit 10";
$data = mysqli_query($dbc, $query);
$i=0;
while($row = mysqli_fetch_array($data)) {
    $row['tiempo'] = (float) $row['tiempo'];
    $rows[$i]=array($row['tiempo'],(float)$row['Fp1Ref']); 
    $i++;
}
echo json_encode($rows);

私が受け取るデータはこれです:

[[0,3001],[0.005,4937.22],[0.01,4130.55],[0.015,4213.15],[0.02,4010.61],[0.025,3914.34],[0.03,3785.33],[0.035,3666.13],[0.04,3555.25],[0.045,3447.77]]

チャートのデータを渡すのに適切な方法だと思いますので、何が悪いのかよくわかりません。よろしくお願いします。

4

2 に答える 2

1

問題は、requestData()関数が起動されたときに、チャート変数がまだ完全に構築されておらず、seriesプロパティがあることを認識していないことだと思います。
これを修正するには、requestData()関数のチャートではなく、これを参照します(これは、そのコンテキストのチャートオブジェクトを意味します)。私はこれをjsfiddleここhttp://jsfiddle.net/elcabo/p2r6g/で試しました。 また、以下のjsコードを投稿してください。

$(function () {
    $(document).ready(function() {

        //Function bits
        function requestData(event) {
            var tiemposAlAzar = [[10,20],[20,50]];
            //The 'this' will refer to the chart when fired
            this.series[0].setData(tiemposAlAzar);
        };

        var chart;

        //Chart bits
        chart = new Highcharts.Chart({
            chart: {
                renderTo: 'container',
                type: 'line',
                events:{
                    load: requestData                           
                }
            },
            xAxis: {},
            yAxis: {
                title: {
                text: 'Value'
            }
        },
        series: [{
            name: 'Random data',
            data: []
        }]
      });
    });
});​ 
于 2012-07-22T11:50:31.110 に答える
0

このURLは、データベースからデータをプルする必要がある動的なハイチャートを作成するのに役立つ場合があります。

json.phpコードでは、SQLクエリを配置し、静的配列を動的配列に置き換えることができます

http://www.kliptu.com/free-script/dynamic-highchart-example-with-jquery-php-json

この例は、jsonを使用して複数のシリーズを管理する方法も示しています。そして、マウスポイントでのすべてのシリーズデータのツールチップ。

スクリプトの要件に従って例を変更できます。

于 2013-09-22T09:51:57.850 に答える