在Javascript代码中显示PHP数组变量

时间:2012-08-22 01:59:05

标签: php javascript arrays

我有一个名为$usershours的php变量,它包含一个数组,我希望在Javascript代码中回显它。我该怎么做?

我试过这个,但它不起作用:

$usershours = "
data.addRow([ new Date(2012,4,1),50119]).+'<br>+'.
data.addRow([ new Date(2012,4,2),242575])";

<script type="text/javascript">
document.write($arrayholder);
</script>

我希望输出如下:

data.addRow([ new Date(2012,4,1),50119]) 
data.addRow([ new Date(2012,4,2),242575])

PS - 我需要这种格式,因为这是Google图表API接受正确呈现图表的格式。

4 个答案:

答案 0 :(得分:4)

从我收集的内容来看,您希望在客户端计算机上使用javascript运行此代码:

data.addRow([ new Date(2012,4,1),50119]) 
data.addRow([ new Date(2012,4,2),242575])

简单地:

<script type="text/javascript">
<?php 
$usershours = "
data.addRow([ new Date(2012,4,1),50119])
data.addRow([ new Date(2012,4,2),242575])";

echo $usershours;
?>
</script>

答案 1 :(得分:3)

虽然将PHP与PHP搞混不是一种最佳方法,但这会让你的代码更加整洁。

让我们假装你的数据来自一个数组[从数据库或文件中获取]如下组成:

$data = array(
    array("date" => "2012-04-01", "id" => 50119),
    array("date" => "2012-04-02", "id" => 242575)
);

通过json_encode($data),您可以获得此输出:

[
  { date : "2012-04-01", id : 50119},
  { date : "2012-04-02", id : 242575}
]

现在您知道如何将数据从PHP结构转换为Javascript结构,这只是一个写作问题:

<script>

  var serverData = <?php echo json_encode($data) ?>;

  for(var i = 0; i < serverData.length; i++)
  {

     data.addRow([ new Date( serverData[i].date ), serverData[i].id ]);

  }

</script>

当然,data.addRow()是在JS代码中声明的函数。

答案 2 :(得分:-1)

如果必须将var arrayholder = <?php json_encode($usershours);?>;输出为字符串(而不是代码),则只需使用arrayholder

答案 3 :(得分:-2)

一般建议:不要尝试从PHP渲染有效的JavaScript。它最终会给你带来一些替代解决方案:将数据嵌入到HTML元素中并通过JavaScript和Ajax提取它

说完了

?>
(function () {
   console.log(<?= json_encode($phpVar); ?>);
}());
<?
当我在脚下射击时,我是如何做到这一点的