在js函数中使用php(外部.js文件)

时间:2020-03-06 16:20:49

标签: javascript php

我有一个jakosc-powietrza.js文件,其中包含以下功能:

var combo1 = document.getElementById('S0_Data');
function test() {
    var dzien = combo1.value.trim();
    alert("Wybrano " + dzien);
 };
function render_test() {
    var test1 = <?php echo x; ?>;

    var chart = new CanvasJS.Chart("chartContainer", {
            theme: "light2",
            animationEnabled: true,
            title: {
                text: "Pomiar parametrów powietrza",
                fontSize: 25
                    },
            axisX: {
                title: "Czas",
                titleFontSize: 15,
                labelAngle: -90,
                intervalType: "hour",
                interval:55
                   },
            axisY: {
                title: "oC/%",
                titleFontSize: 15
                   },
            axisY2: {
                title: "ppm/ppb",
                titleFontSize: 15
                   },
            data: [
                  {
                type: "line",
                color: "red",
                name: "Temperatura",
                showInLegend: true,
                dataPoints: <?php echo json_encode($data_points, JSON_NUMERIC_CHECK); ?>
                  },
                  {
                type: "line",
                color: "green",
                name: "Wilgotność",
                showInLegend: true,
                dataPoints: <?php echo json_encode($data_points2, JSON_NUMERIC_CHECK); ?>
                  },
                  {
                type: "line",
                color: "blue",
                name: "eCO2",
                axisYType: "secondary",
                showInLegend: true,
                dataPoints: <?php echo json_encode($data_points3, JSON_NUMERIC_CHECK); ?>
                  },
                  {
                type: "line",
                color: "yellow",
                name: "TVOC",
                axisYType: "secondary",
                showInLegend: true,
                dataPoints: <?php echo json_encode($data_points4, JSON_NUMERIC_CHECK); ?>
                  }
                  ]
        });
        chart.render();
};
combo1.addEventListener('change', render_test, false);

我将其包含在test.php文件中,如下所示:

<script type="text/javascript" src="js/jakosc-powietrza.js"></script>

当我使用浏览器打开test.php文件时,在Web控制台中出现以下错误:

SyntaxError:预期的表达式,得到了'<'

...它指向此:

var test1 = <?php echo x; ?>;

任何指针我在做什么错?

1 个答案:

答案 0 :(得分:2)

像使用.js文件一样,让PHP解析/解释您的.php文件是可能,但这通常是一个坏主意。 (当然,默认情况下不会安装任何PHP。)

相反,在执行外部JavaScript之前,将所需的值放在.php文件中,然后在外部JavaScript中对其进行引用。例如:

<script type="text/javascript">
    var test1 = <?php echo x; ?>;
</script>
<script type="text/javascript" src="js/jakosc-powietrza.js"></script>

随着复杂性的增长,有各种方法来管理范围,将动态值作为依赖项注入到其他自包含(可单元测试)的JavaScript模块中。但是前提保持不变。