<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Highcharts Example</title>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript">
$(function () {
var newanswer = <?php echo"$newanswer"; ?>
var chart;
$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'column'
},
title: {
text: 'Monthly Progress Reports'
},
subtitle: {
text: 'Source: Sales Department'
},
xAxis: {
categories: [
'Jan',
'Feb',
'Mar',
'Apr',
'May',
'Jun',
'Jul',
'Aug',
'Sep',
'Oct',
'Nov',
'Dec'
]
},
yAxis: {
min: 0,
title: {
text: 'Range'
}
},
legend: {
layout: 'vertical',
backgroundColor: '#FFFFFF',
align: 'left',
verticalAlign: 'top',
x: 100,
y: 70,
floating: true,
shadow: true
},
tooltip: {
formatter: function() {
return ''+
this.x +': '+ this.y +' Star';
}
},
plotOptions: {
column: {
pointPadding: 0.2,
borderWidth: 0
}
},
series: [{
name: '5 Star', //Blue
data: [newanswer, 20, 30, 40, 50, 60, 70, 80, 90, 95, 10, 20]
}, {
name: '4 Star', //Red
data: [4, 20, 30, 40, 50, 60, 70, 80, 90, 95, 10, 20]
}, {
name: '3 Star', // Green
data: [3, 38.8, 39.3, 41.4, 47.0, 48.3, 59.0, 59.6, 52.4, 65.2, 59.3, 51.2]
}, {
name: '2 Star', //violet
data: [2, 33.2, 34.5, 39.7, 52.6, 75.5, 57.4, 60.4, 47.6, 39.1, 46.8, 51.1]
}, {
name: '1 Star', //lightblue
data: [1, 33.2, 34.5, 39.7, 52.6, 75.5, 57.4, 60.4, 47.6, 39.1, 46.8, 51.1]
}]
});
});
});
</script>
</head>
<body>
<script src="js/highcharts.js"></script>
<script src="js/exporting.js"></script>
<div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>
<?php
$newanswer = 50;
?>
</body>
</html>
这可以将php值传递给javascript吗?我需要这样做才能将mysql查询的值放入图形中,图形由java脚本编码。 THX
问题在于这一行
<?php $newanswer = 50; ?>
无法传递此行的值:
var newanswer = <?php echo"$newanswer"; ?>
这样 50 值不会显示在此行中:
data: [newanswer, 20, 30, 40, 50, 60, 70, 80, 90, 95, 10, 20]
答案 0 :(得分:3)
PHP没有JS的概念,所以你可以简单地拥有......
data: [<?php echo $newanswer ?>, 20, 30, 40, 50, 60, 70, 80, 90, 95, 10, 20]
但请注意,直接输出到JS代码块意味着您必须非常小心,不要在JS代码中引入语法错误。一个错误,整个代码块被JS解析器杀死。因此,作为一般规则,您应该始终在PHP中使用json_encode()来确保您生成语法上有效的JS。
即使它只是一个输出的整数,这也适用 - 现在最好进入json编码习惯。它会为你节省很多苦难:
data: [<?php echo json_encode($newanswer) ?>, 20, 30, 40, 50, 60, 70, 80, 90, 95, 10, 20]
因此,即使$ newanswer为null或未定义,你也会得到valis JS。
答案 1 :(得分:2)
这部分代码必须一直向上移动:
<?php
$newanswer = 50;
?>
这一部分:
var newanswer = <?php echo"$newanswer"; ?>
最好改写为:
var newanswer = <?php echo json_encode($newanswer); ?>;
修改强>
最后一部分写得更好,见Marc B's answer。
答案 2 :(得分:0)
将隐藏值放在
之类的表单中<input type="hidden" name="newanswer" id="newanswer" value="<?=$newanswer; ?>" >
现在使用getElementById
,您可以获得$newanswer
答案 3 :(得分:0)
您在代码末尾使用它后定义了PHP变量。只需将定义为,然后再将其传递给JavaScript。
答案 4 :(得分:0)
将值隐藏到隐藏字段
然后转到javascript并添加以下代码
var xi=(document.getElementById("aa")).value;