-5

我有一个$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

4 回答 4

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>
于 2012-08-22T02:16:53.947 回答
3

尽管将 PHP 与 JS 混为一谈远非最佳方法,但这也会使您的代码更加整洁。

假设您的数据来自一个数组[从数据库或文件中获取],如下所示:

$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 代码中某处声明的函数。

于 2012-08-22T02:30:04.387 回答
-1

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

于 2012-08-22T02:11:52.590 回答
-2

一般建议:不要尝试从 PHP 呈现有效的 JavaScript。它最终会咬你,一些替代解决方案:将数据嵌入 HTML 元素并通过 JavaScript 和 Ajax 提取它

话说回来

?>
(function () {
   console.log(<?= json_encode($phpVar); ?>);
}());
<?

当我可以在脚上射击自己时,我就是这样做的

于 2012-08-22T02:22:00.750 回答