javascript - 在 Javascript 中集成 PHP 变量
问题描述
我有这个 Javascript,它输出一个带有一些值的图表:
<script type="text/javascript">
//pie
var ctxP = document.getElementById("pieChart").getContext('2d');
var myPieChart = new Chart(ctxP, {
type: 'pie',
data: {
labels: ["Red", "Blue"],
datasets: [{
data: [10, 90],
backgroundColor: ["#F7464A", "#46BFBD"],
hoverBackgroundColor: ["#FF5A5E", "#5AD3D1"]
}]
},
options: {
responsive: true
}
});
</script>
我需要自定义一些值,例如标签或数据中的值,这些值来自以前在 PHP 中进行的一些计算。
到目前为止我尝试过的都不成功,可能是因为我错过了一些东西。为了简化我所做的,这里的代码:
//PHP code where I define some variables as strings
<?php
$color1 = "Black";
$color2 = "White";
?>
//Then comes again the Javascript code:
<script type="text/javascript">
//pie
var ctxP = document.getElementById("pieChart").getContext('2d');
var myPieChart = new Chart(ctxP, {
type: 'pie',
data: {
labels: [<?php echo $color1, $color2; ?>], //////////Here my modification
datasets: [{
data: [10, 90],
backgroundColor: ["#F7464A", "#46BFBD"],
hoverBackgroundColor: ["#FF5A5E", "#5AD3D1"]
}]
},
options: {
responsive: true
}
});
</script>
这不起作用,但我不明白为什么。
我也尝试过:
<?php
$colors = array("Black", "White");
?>
传递 $colors 变量,但没有任何变化。
我犯了什么错误?
我怎样才能解决这个问题?
解决方案
在 php 文件中,可以使用json_encode来完成
<?php
// your php code
?>
<script>
var jsObject = <?php
echo json_encode([
'my_variable1' => 'value1',
'my_variable2' => 'value2'
]);
?>
console.log(jsObject);
</script>
推荐阅读
- user-interface - 列出包的面板和包含我的数据集的面板是不可见的
- wcf - Powershell New-WebServiceProxy - 如何调用 WCF 服务
- operating-system - 如何计算物理地址对应哪个虚拟逻辑地址?
- python - 如何将键值对分布在多列中并基于另一列展平矩阵?
- html - 让 div 进入 flex 容器
- ubuntu - 无法将代码服务器安装到 WSL。“系统尚未使用 systemd 作为 init 系统 (PID 1) 启动。无法运行。”
- python - 检测带有标记的 PDF 页面?
- flutter - Flutter: Package can't load a string resource using rootBundle.loadString - asset indenting correct
- excel - INDEX MATCH 唯一值的 Excel TEXTJOIN
- apache-kafka - 如何使用 Kafka REST 代理处理背压