0

クライアント側は、サーバー側のphpにPOSTリクエストを送信します。PHPはjsonをクライアントに返します。例:

[["1"、 "-1"]、["2"、 "0"]、["3"、 "0"]、["4"、 "0"]、["5"、 "4" ]、["6"、 "5"]、["7"、 "3"]]

クライアント側からチャートを作成する必要があります。jQueryプラグインjqPlotとFlotを使用してグラフを作成しましたが、jqChartが正しく表示されません。jQueryコードは次のとおりです。

            if ($jqlib == "flot") {
                var d2 = [[0, 3], [4, 8], [8, 5], [9, 13]];
                $.post('database2json.php', function(data){
                    $.plot($("#placeholder"), [d2, data]);
                },
                'json'
                );
            } else if ($jqlib == "jqchart") {
                $.post('database2json.php', function(podaci){
                    $('#placeholder').jqChart({
                        title: { text: 'Chart Title'},
                        series: [
                            {
                                type: 'line',
                                data: podaci
                            }
                        ]
                    });
                });
            }

そのコードを使用すると、Flotは線でグラフを描画し、jqChartはグラフを描画しますが、線がなく、空のグラフです。

この問題を解決する方法は?

編集1:これがjqChart出力のスクリーンショットです: ここに画像の説明を入力してください

x軸では、予想どおり1から31まで描画され、y軸も問題ありませんが、線はありません。

EDIT2:@DraganMatekは、jqChartがペア値[x、y]を受け入れると述べました。ここで、xは文字列、日付、または数値であり、yは数値です。

データベースには、int型の両方の列があります。

これらのデータをフェッチするためのサーバー側のPHPコードは次のとおりです。

$result = mysql_query("select Dan, Temperatura from TEMPERATURA");
        $niz = array();
    while ($row = mysql_fetch_array($result)) {
                $niz[] = array($row['Dan'], $row['Temperatura']);  
    }

        $obj = json_encode($niz);
        echo $obj;

jsonとして送信した後、なぜx文字列とy文字列の両方であるのかわかりません。たぶん私はこれをクライアント側で解析できますか?

EDIT3:クライアント側でこれを取得することをFirebugで確認しました:

[["1"、 "-1"]、["2"、 "0"]、["3"、 "0"]、["4"、 "0"]、["5"、 "4" ]、["6"、 "5"]、["7"、 "3"]、["8"、 "2"]、["9"、 "2"]、["10"、 "1" ]、["11"、 "-2"]、["12"、 "-2"]、["13"、 "0"]、["14"、 "1"]、["15"、 " -2 "]、[" 16 "、"-1 "]、[" 17 "、"-1 "]、[" 18 "、"-2 "]、[" 19 "、"-1 "]、[ "20"、 "3"]、["21"、 "-1"]、["22"、 "0"]、["23"、 "1"]、["24"、 "3"]、 ["25"、 "1"]、["26"、 "1"]、["27"、 "-1"]、["28"、"-1"]、["29"、 "4"]、["30"、 "5"]、["31"、 "5"]]

なぜそうなのですか?データベースには2つの整数があります。

4

2 に答える 2

2

jqChartは配列要素としてintを必要とし、文字列を処理できないようです。以下のようにコードを更新しました。

$.post('database2json.php', function(podaci){
    $.each( podaci, function(i, e) {
        podaci[i][0] = parseInt(e[0]);
        podaci[i][1] = parseInt(e[1]);
    });

    $('#placeholder').jqChart({
        title: { text: 'Chart Title'},
        series: [
            {
                type: 'line',
                data: podaci
            }
        ]
    });
});
于 2012-01-18T22:20:40.167 に答える
1

jqChartデータは、["1"、"-1"]ではなく["1"、-1]の形式である必要があります。

2番目の値は数値である必要があります。

ドキュメントも確認できます:jqChart折れ線グラフ

于 2012-01-19T17:58:59.113 に答える