2012-01-18 4 views
0

クライアント側からサーバー側にphpへのポストリクエストが送信されます。 PHPはjsonをクライアントに返します。例:JSONをjqChartに渡すには?

[["1"、 " - 1"]、["2"、 "0"]、["3"、 "0"

今、クライアント側から私はグラフを作成する必要があります。 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は、チャートを描画しますが、ラインがない、それは空のチャートです。

この問題を解決するにはどうすればよいですか?

EDIT1:ここjqChart出力のスクリーンショットである:それは予想通り31 1〜描画X軸上 enter image description here

、またY軸はOKであるが、ないラインが存在しません。

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」) 「20」、「3」、「21」、「-1」、「22」、「-1」、「-1」、「-1」、 0 "、" 23 "、" 1 "、" 24 "、" 3 "、" 25 "、" 1 "、" 26 "、" 1 " 「-1」、「「28」、「 - 1」、「29」、「4」、「「30」、「5」」、「「31」、「5」〕

なぜですか?データベースには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 
      } 
     ] 
    }); 
}); 
+0

私は自分の質問を編集しました。 –

+0

クライアント側のpodaciの値を確認してください。 FirebugをFirefoxで使用して、それをデバッグすることができます。また、JSONを解析し、それが役立つかどうかを確認してください。 –

+0

Firebugを使って私がクライアント側に持っているものをチェックする方法。コンソールに何かを入力するには? –

1

jqChartデータフォーマットでなければならない:[ "1"、-1]の代わりに[ "1"、 "-1"]。

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

また、文書も確認できます。jqChart Line Chart

+0

@Dragan_Matek、私の2番目の編集を参照してください。 –

関連する問題