2012-01-18 20 views
0

客戶端在服務器端向php發送post請求。 Php將json返回給客戶端。示例:如何將JSON傳遞給jqChart?

[[「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 
          } 
         ] 
        }); 
       }); 
      } 

與該代碼,海軍報繪製圖表與路線,jqChart繪製圖表但沒有線,它是空的圖表。

如何解決這個問題?

EDIT1:這裏是jqChart輸出的屏幕截圖: enter image description here

在它從1平到31如預期x軸,也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:我與螢火蟲檢查了在客戶端我得到這樣的:

[[ 「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

看來,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

我編輯了我的問題。 – 2012-01-18 22:42:32

+0

檢查客戶端上的podaci的值。您可以在Firefox上使用Firebug進行調試。也嘗試解析JSON,看看是否有幫助。 – 2012-01-18 23:13:20

+0

如何使用Firebug檢查我在客戶端有什麼。在控制檯中輸入內容? – 2012-01-22 15:20:16

1

jqChart數據應採用格式:[「1」,-1]而不是[「1」,「-1」]。

第二個值需要是數字。

您也可以查看文檔以及:jqChart Line Chart

+0

@Dragan_Matek,看我的第二次編輯。 – 2012-01-22 15:35:30