2013-03-27 36 views
0

我有一个使用图一个javascript,对于在JavaScript中的图表中的数据被定义如下:的Javascript的foreach

data: [1,2,3,4,5,6], 

我有JavaScript的一个foreach和IM试图在使用前值此数据字段如下:

数据:[],

现在,如果我只是回声 “$测试”;在页面外javascript我得到以下输出 1,2,3,4,5,6,这是正确的,如果我复制这个输出,并直接在数据字段中使用它的作品,但是当我尝试调用$测试数据字段中的值不起作用。 因此,在短期

data: [1,2,3,4,5,6], (WORKS) 
data: [<?php echo "$test"; ?>], (does not work even though when doing normal echo outside java it does print 1,2,3,4,5,6 

任何帮助,将不胜感激

foreach ($chart->usage->days->day as $day): 
$totals = $day->total; 
$datau = Round(("$totals")/(1024 * 1024 * 1024), 2); 
$test = "$datau, "; 
+0

你有没有在$测试变量的额外的逗号?例如[1,2,3,4,5,6,]? – galchen 2013-03-27 23:23:41

+0

'[1,2,3,4,5,6]'是不一样的'[“1,2,3,4,5,6”]' – 2013-03-27 23:24:34

+0

是的,我这样做,但即使我复制并输入到它的数据字段中,例如 data:[1,2,3,4,5,6,],(works aswel) – 2013-03-27 23:25:36

回答

1

尝试做

$test="1,2,3,4,5,6"; //Make sure to remove a trailing comma. 
data: [<?php echo $test; ?>] 

我看不出有任何需要在 “$测试”。

旁注:您也可以取出回声。另外,因为data是一个数组,所以我会将$test作为一个数组存储。

$test=array(1,2,3,4,5,6); 
data: [<?= implode(",", $test) ?>] 

在我看来,这看起来更清洁。

编辑:根据您的foreach,请尝试:

$test=array(); 
foreach ($chart->usage->days->day as $day){ 
$totals = $day->total; 
$test[] = round(($totals)/(1024 * 1024 * 1024), 2); 
} 

data: [<?= implode(",", $test) ?>], 
+2

就我所见,字符串插值将具有相同的输出。 – 2013-03-27 23:25:11

+0

但应该没关系,应该给出相同的输出 – galchen 2013-03-27 23:25:30

+0

不起作用,对不起 – 2013-03-27 23:29:31