クライアント側は、サーバー側の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つの整数があります。