2013-10-27 60 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

其实我似乎无法使它以正确的方式工作。 –