我有一个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; ?>;
任何指针我在做什么错?
答案 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模块中。但是前提保持不变。