2013-10-27 49 views
0

我試圖用Sparklines生成餅圖,但我遇到了一些麻煩。我似乎無法弄清楚我做錯了什麼,但我覺得這是一個愚蠢的錯誤。

我用下面的代碼生成在div一個火花線圖#traffic_bos_ss

//Display Visitor Screen Size Stats 
$.getJSON('models/ucp/traffic/traffic_display_bos.php', 
{ 
    type: 'ss', 
    server: server, 
    api: api, 
    ip: ip, 
}, 
function(data) 
{ 
    var values = data.views; 
    //alert(values); 


    $('#traffic_bos_ss').sparkline(values, 
    { 
     type: "pie", 
     height: "100%", 
     tooltipFormat: 'data.screen - {{value}}', 

    }); 
}); 

JSON字符串牽強:

{"screen":"1220x1080, 1620x1080, 1920x1080","views":"[2, 2, 61]"} 

出於某種原因,迷你不處理變量的值爲。當我提醒變量時,它會輸出「[2,2,61]」。現在,jQuery代碼不工作,當我更換片段:

var values = data.views; 

var values = [2, 2, 61]; 

我在做什麼錯?

回答

0

你說你要的getJSON調用返回它有一個字符串作爲其值「意見」:當您更改代碼以

"[2, 2, 61]" 

然而,:

var values = [2, 2, 61]; 

在這如果您正確指定了三個整數的數組。

變化的方法,該方法返回JSON,以便它可以正確地返回和整數的陣列,用於「視圖」,而不是一個單一的字符串即

{"screen" : "1220x1080, 1620x1080, 1920x1080", "views": [2, 2, 61] } 

見的jsfiddle here

另外你也說你的$ .getJSON調用正在工作,但你寫的方法調用是不正常的。有關jQuery的getJSON文檔,請參閱here

下面應該工作:

var values; 
$.getJSON("models/ucp/traffic/traffic_display_bos.php", function(data) { 
    values = data.views; 
}); 

$('#traffic_bos_ss').sparkline(values, 
{ 
type: "pie", 
height: "100%", 
tooltipFormat: 'data.screen - {{value}}' 
}); 
+0

謝謝!現在就像魅力一樣。我也會看這部紀錄片;) –

+0

很酷。很高興我能幫助鮑勃。 –

+0

其實我似乎無法使它以正確的方式工作。 –