javascript - Highchartsはjsonを使用して折れ線グラフにポイントを追加します

原文 javascript php mysql json highcharts

mysqlデータベースから取得したデータからポイントを追加する必要があります。現時点では、jsonでデータを取得していますが、出力配列でデータに次のように二重引用符( "")が含まれている理由がわかりません。

["{name:'Chip 3',data:[[moment('2015-05-14 13:26:21','HH:mm:ss').valueOf(),29],[moment('2015-05-14 13
:26:51','HH:mm:ss').valueOf(),29],[moment('2015-05-14 13:27:21','HH:mm:ss').valueOf(),29],[moment('2015-05-14
 13:27:51','HH:mm:ss').valueOf(),29],[moment('2015-05-14 13:28:21','HH:mm:ss').valueOf(),29],[moment('2015-05-14
 14:42:54','HH:mm:ss').valueOf(),32],]}"]


したがって、Highchartsはデータにアクセスできず、グラフにデータを表示できません。次に、配列から二重引用符を削除するか、他の方法でHighchartsがデータを再認識できるようにする必要があります。

これは、系列データの取得と更新に使用するdata.phpファイルのコードです。

<?php

header("Content-type: text/json");


 include_once 'include/connection.php';
 $db = new DB_Class(); 



     $query = "select distinct idchip from datatable ";
     $result = mysql_query( $query );
     $rows = array();
     $count = 0;
     $getall = array();
     while( $row = mysql_fetch_array( $result ) ) {

         $table = array();

         $query2 = "select datetime,temperature from datatable where idchip=".$row['idchip'].' group by datetime ';

            $dataresult = mysql_query($query2);
            while($datarow = mysql_fetch_array($dataresult))
            {

                $data = '';


                $datatimes .= $datarow['0'].',';


                $data .= "[moment('".$datarow['0']."','HH:mm:ss').valueOf(),".(integer)$datarow['1']."],";
                $stringdata .= $data;

                }

        $newstring = $stringdata ;

        $stringdata = '';
        $stringtime = '';

        $namedata = "{name:'Chip ".$row["idchip"]."',data:[$newstring]}";
        $getall[] = $namedata;


     }


echo json_encode($getall);
?>


これは、ajaxの戻りデータを取得するために使用するコードです。

function getData() {
        jQuery.ajax({
            url: 'data.php',
            type: 'GET',
            dataType: 'json',
            mimeType: 'multipart/form-data',
            contentType: false,
            cache: false,
            processData: false,
            success: function( data, jqXHR ) {
                if( data == "null" ) {

                } else {
                  $.getJSON("data.php", function(json) {

            chart = new Highcharts.Chart({
               chart: {
                renderTo: 'container',
                defaultSeriesType: 'spline',
                events: {
               //     load: requestData
                }
            },
 series: json

            });
        });
                }
            },
            error: function( textStatus ) {
                console.log(" error. damm. ");
                //console.log(error);
            }
        });
    } 
答え
このようなものだと思います

    $query = "select distinct idchip from datatable ";
    $result = mysql_query( $query );
    $rows = array();
    $count = 0;
    $getall = array();
    while( $row = mysql_fetch_array( $result ) ) {

        $table = array();
        $stringdata = array();
        $query2 = "select datetime,temperature from datatable where idchip=".$row['idchip'].' group by datetime ';

        $dataresult = mysql_query($query2);

        $stringdata = array();
        while($datarow = mysql_fetch_array($dataresult))
        {
            $stringdata[] = "moment('".$datarow['0']."','HH:mm:ss').valueOf(),".(integer)$datarow['1'];
        }

        $namedata['name'] = "Chip ".$row["idchip"];
        $namedata['data'] =  $stringdata;
        $getall[] = $namedata;
    }

    echo json_encode($getall);
関連記事

javascript - Angular-redactor:ぼかしコールバックの設定方法は?

javascript - Google Maps Marker Clusterer:ネストされたクリックの処理

javascript - この特定のオブジェクト形式を使用してネストされたプロパティをホワイトリストに登録する

javascript - CSSアニメーションJavascript

javascript - PHPが非標準ポートの外部URLからデータをロードする

javascript - processing.jsでのマウスの近接の検出

javascript - Harpサーバーを使用してJSとCoffeeScriptファイルを連結する方法はありますか?

javascript - interact.jsでonmoveを手動でトリガーする

javascript - ネストされたオブジェクトをオブジェクトJSに割り当てる

javascript - nginxリバースプロキシメソッドを使用してウェブサイトをホストしようとしています。2つのNode.jsアプリケーションを実行しています。