0

我有一个网站模板,它使用外部 JAVSCRIPT 文件将数据绘制到图表上。我想要做的是将演示内容交换为 php 变量。

原始图形数据

  var data = [{
  label: "Facebook",
  data: [[1, 2], [2, 37], [3, 12], [4, 72], [5, 24], [6, 113], [7, 27]]
  },
  {
  label: "Google+",
  data: [[1, 3], [2, 45], [3, 16], [4, 48], [5, 12], [6, 125], [7, 26]]
  }];

我的尝试

 var data = [{
label: "Facebook",
 data: [[<?php echo '$daysago7'; ?>, 2], [<?php echo '$daysago6'; ?>, 37], [<?php echo   '$daysago5'; ?>, 12], [<?php echo '$daysago4'; ?>, 72], [<?php echo '$daysago3'; ?>, 24],   [<?php echo '$daysago2'; ?>, 113], [<?php echo '$daysago1'; ?>, 27]]
 },
 {
label: "Google+",
data: [[<?php echo '$daysago7'; ?>, 3], [<?php echo '$daysago6'; ?>, 45], [<?php echo '$daysago5'; ?>, 16], [<?php echo '$daysago4'; ?>, 48], [<?php echo '$daysago3'; ?>, 12], [<?php echo '$daysago2'; ?>, 125], [<?php echo '$daysago1'; ?>, 26]]

}]

当我包含我的版本时,我根本没有得到任何图表。

4

4 回答 4

1

例如,您可以使用以下代码创建文件javascript.php :

<?php header("Content-type: text/javascript");?>
var data = [{

    }, { label: "Google+",  data: [[ < ?php echo '$daysago7'; ? >, 3], [ < ?php echo '$daysago6'; ? >, 45], [ < ?php echo '$daysago5'; ? >, 16], [ < ?php echo '$daysago4'; ? >, 48], [ < ?php echo '$daysago3'; ? >, 12], [ < ?php echo '$daysago2'; ? >, 125], [ < ?php echo '$daysago1'; ? >, 26]]}]
于 2013-05-07T19:24:04.610 回答
1

好吧,我曾经这样做:

PHP(控制器)

$dataPlot = [
    'label' => 'Facebook',
    'data' => [...]
];

查看(PHP,Twig,不知道)

<div data-plot="<?php echo json_encode($dataPlot) ?>"></div>

JS(使用 jQuery)

$(function() {

    $('[data-plot]').each(function(i) {

        var div = $(this);
        var data = div.data('plot');

        div.someJQueryChartPlugin(data);

    });

});

CSS

[data-plot] {
    ...
}

这样您就不需要使用 PHP 生成 JS(并发送正确的标题以使浏览器了解它是什么),并且可以轻松添加大量图表。

于 2013-05-07T20:47:31.427 回答
0

如果您在 .js 文件中编写 php,它将无法正常工作。但是你可以做

<script language="JavaScript" type="text/javascript" src="/some_file.php"></script>

并使该 .php 文件输出 javascript。

于 2013-05-07T20:34:29.207 回答
0

只需从代码中删除撇号即可。

代替

<?php echo '$daysago7';?>

用这个

<?php echo $daysago7;?>

撇号将$符号解释为正常符号,而不是 php 变量。

如果您按照其他答案的建议将 php 文件用于 javascript,只需将此标头添加到文件的最顶部(在任何空格之前):

<?php header("Content-type: text/javascript");?>

帮助客户端确定其 MIME 类型。

于 2013-05-07T20:40:18.027 回答