在Javascript中集成PHP变量
我有一个Javascript,它输出一个带有一些值的图表:在Javascript中集成PHP变量,javascript,php,Javascript,Php,我有一个Javascript,它输出一个带有一些值的图表: <script type="text/javascript"> //pie var ctxP = document.getElementById("pieChart").getContext('2d'); var myPieChart = new Chart(ctxP, { type: 'pie', data: {
<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完成此操作
您可以这样做:labels:JSON.parseThank!成功了!不客气!我对整数也做了同样的处理,但不起作用。程序是一样的吗?再次感谢!为了澄清php变量$colors实际上是一个数组!是的,如果$colors变量是一个有效数组,它应该像一个符咒一样工作!它不会那样工作的。jsObject将返回一个未解析的json字符串。您应该像这样解析它:JSON.parsejsObject。此外,您还必须使用@AdnaneAr来包装它,它将起作用。看起来你还没有完全按照写的那样试过。Php的json_encode确实返回一个字符串值,但随后它被直接注入html而不带任何引号,因此您得到的基本上是var jsObject={…content go here},因此不应该对其进行解析。至于带引号的变体,那么应该解析它,是吗
<?php
// your php code
?>
<script>
var jsObject = <?php
echo json_encode([
'my_variable1' => 'value1',
'my_variable2' => 'value2'
]);
?>
console.log(jsObject);
</script>