【发布时间】:2013-01-16 02:55:07
【问题描述】:
我正在尝试制作一个图表(通过 Google 图表)来显示过去 24 小时我服务器上的用户活动。每 15 分钟(通过 cron)获取用户活动的数据并存储在本地数据库中。由于数据库每 15 分钟更新一次,因此图表不是静态的。
该图显然需要一些数字作为输入,以便它可以绘制。这是一个简单的 javascript 工作示例:
dataTable.setValue(0, 0, 0);
dataTable.setValue(1, 0, 25.0);
dataTable.setValue(2, 0, 50.0);
dataTable.setValue(3, 0, 75.0);
dataTable.setValue(4, 0, 100.0);
上面的代码会画一条对角线,从 (x,y) = (0,0) 开始,到 (x,y)=(4,100) 结束
所以我现在要做的是循环 96 次(每 15 分钟更新一次,持续 24 小时 = 15 x 24 = 96)。
所以这是我尝试过的:
for(x=0;x<96;x++){ //copy PHP array into javascript array
javaArray[x] = <?php echo $sqlArray[$count]['clients_online'];?>;
<?php $cnt++; ?>
}
for (var x=0;x<96;x++){ //draw graph
dataTable.setValue(x, 0, javaArray[x]);
}
在第一个 for 循环中,我 将数据(从数据库中获取)从 PHP 数组传递到 javascript 数组。完成后,我在第二个 for 循环中绘制图形。
$count 变量在 for 循环中正确递增,但我的问题是 它在每次循环后重置。
我意识到 PHP 是服务器端,而 javascript 是客户端,因此存在问题,但我该如何解决这个问题?
谢谢。
【问题讨论】:
-
为什么所有的计数变量?您可以使用 JSON
<?php $arr = array(1,2,3,4); ?> /*Javascript*/ js_arr = JSON.parse(<?php json_encode($arr); ?>);将服务器端 PHP 数组传递给 javascript。根据问题中提供的信息,我无法确定哪个计数变量正在发生变化;但我看到一个 PHP 计数变量没有被传递给 javascript,是这样吗? -
15 x 24 != 96,你想说的是 4 * 24 = 96 或者为了更简单的理解 60 / 15 * 24
标签: php javascript variables loops reset