将PHP添加到外部JAVASCRIPT文件

将PHP添加到外部JAVASCRIPT文件,php,javascript,Php,Javascript,我有一个网站模板,它使用一个外部脚本文件将数据绘制到图形上。我想做的是用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,

我有一个网站模板,它使用一个外部脚本文件将数据绘制到图形上。我想做的是用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]]
var数据=[{
标签:“Facebook”,
数据:[,2],,37],,12],,72],,24],,113],,27]]
},
{
标签:“谷歌+”,
数据:[,3],,45],,16],,48],,12],,125],,26]]
}]


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

例如,您可以使用以下代码创建一个文件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]]}]

风险值数据=[{
},{标签:“Google+”,数据:[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]]

如果您在.js文件中编写php,它将无法工作。不管你怎么做

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


并使该.php文件输出javascript。

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

而不是

<?php echo '$daysago7';?>

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

好的,我使用以下方法:

PHP(控制器)

查看(PHP、Twig、dunno)

CSS

[data-plot] {
    ...
}

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

今天,我偶然发现了一个非常好的问题答案,您的变量设置了吗?服务器是否在您的Javascript文件中解释PHP?(您尝试执行的include的扩展是什么)。了解您试图包含/使用的内容的结构可能有助于回答您的问题。你也错过了一个结束;在您的版本中。}]应该是}];我的猜测是PHP没有处理那个文件。尝试将文件更改为
.php
文件,而不是
.js
文件。标题非常重要,然后在脚本标记中使用它,如下所示:
<?php header("Content-type: text/javascript");?>
$dataPlot = [
    'label' => 'Facebook',
    'data' => [...]
];
<div data-plot="<?php echo json_encode($dataPlot) ?>"></div>
$(function() {

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

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

        div.someJQueryChartPlugin(data);

    });

});
[data-plot] {
    ...
}