2013-03-04 24 views
1

我在將Flot條形圖從Ajax請求更新爲返回JSON數據的PHP腳本時遇到了一些問題。更新Flot PHP,AJAX,JSON

PHP腳本是:

$vars = array(
    'result' => "success", 
    'msg' => AJAX_SUCCESS, 
    'series' => "Group One,80,Group Two,10" 
    ); 
echo json_encode($vars); 

這是返回給一個變量 '系列'

var data = [series.series]; 

它輸出到控制檯:

Group One,80,Group Two,10 

我也有一個評論out變量是:

//var datatwo = [ ["Group One", 80], ["Group Two", 10] ]; 

這還輸出到控制檯

Group One,80,Group Two,10 

實際JavaScript來創建圖形是

$.plot("#group-month-graph", [data], options); 

的選項在腳本的另一位置分配。

我試圖找出我做錯了,因爲當我提醒返回的數據或輸出到控制檯的值是相同的,但返回的數據不會繪製圖形,而如果我使用註釋掉的值。

希望是有道理的。我已經減少了完整的腳本,因爲我不認爲問題在於其他任何地方。

+0

你的數據格式series陣列似乎是不正確的。檢查https://github.com/flot/flot/blob/master/API.md – deadlock 2013-03-04 03:13:54

+0

此腳本適用於使用格式數據的flot'類別'模式:[[「Label」,10],[「Label 「,20]]。我嘗試將數據返回爲:'series'=>「[Group One,80],[Group Two,10]」無效。 – 2013-03-04 03:24:51

+0

當插件需要一個數組時,您正在返回一個字符串。您應該返回'[[「Group One」,80],[「Group Two」,10]] – deadlock 2013-03-04 03:26:10

回答

1

您正在返回一個字符串,而插件期待一個數組。您應該返回[["Group One",80],["Group Two",10]]

你的PHP系列結構變更爲:

$vars = array(
    'result' => "success", 
    'msg' => AJAX_SUCCESS, 
    'series' => array(array("Group One",80),array("Group Two",10)) 
); 

此外,你應該得到使用data而不是[data]

$.plot("#group-month-graph", data, options); 
+0

感謝隊友。默認腳本在$ .plot(「#group-month-graph」,data,options)中有[data];它使用註釋掉的值輸出正確的數據,但是使用您發佈的代碼適用於JSON數據。這對我來說沒問題。乾杯。 – 2013-03-04 03:38:36