下面是我的php文件(recherche.php
(的摘录,该文件包含Html
和Javascript
(JQuery Highcharts
(代码并运行MySQL
查询。
但是,在head
标记中设置JQuery代码时,我无法访问PHP
变量。
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title></title>
<link href="../css/bootstrap.css" type="text/css" rel="stylesheet" />
<link href="../css/style.css" type="text/css" rel="stylesheet" />
<script src="./graphics/js/jquery-1.9.1.js" type="text/javascript"></script>
<script src="./graphics/js/highcharts.js" type="text/javascript"></script>
<script type="text/javascript">
var cat = '<?php echo $categorys; ?>' ;
var data1 = '<?php echo $datas; ?>' ;
var data2 = '<?php echo $datas2; ?>' ;
var data3 = '<?php echo $datas3; ?>' ;
var chart;
$(document).ready(function() {
chart1 = new Highcharts.Chart({
chart: {
renderTo: 'containerxx',
type: 'bar'
},
title: {
text: 'Average salaries of the sector'
},
xAxis: {
categories: ['Women', 'Men']
},
yAxis: {
title: {
text: 'Salary'
}
},
series: [{
name: 'average salary',
data: document.write(data1);
},
{
name: 'max salary',
data: document.write(data2);
},
{
name: 'min salary',
data: document.write(data3);
}]
});
});
</script>
下面,仍然在同一个文件和body
标签中,在更多的代码之后,是php变量分配:
...
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$category[] = $row[$categorie];
$data[] = (INT)$row['Salaire_moyen'];
$data2[] = (INT)$row['Salaire_Max'];
$data3[] = (INT)$row['Salaire_Min'];
}
$categorys = json_encode($category);
echo $categorys ;
echo "<br/><br/>";
$datas = json_encode($data);
echo $datas ;
echo "<br/><br/>";
$datas2 = json_encode($data2);
echo $datas2;
echo "<br/><br/>";
$datas3 = json_encode($data3);
echo $datas3 ;
echo "<br/><br/>";
....
这是启动高图图形的命令:
<div id="containerxx" style="width:100%; height:400px; margin:0 auto"></div>
但遗憾的是,屏幕上没有显示任何图表。
但是,当我在同一个php文件中对静态值进行同样的处理时,它会起作用,我可以在网页中获得高图图形。
例如,当我在同一个文件中写下面的脚本而不是上面的脚本时,它就起作用了,并且图形显示在我的页面上:
<script type="text/javascript">
var chart;
$(document).ready(function() {
chart1 = new Highcharts.Chart({
chart: {
renderTo: 'containerxx',
type: 'bar'
},
title: {
text: 'Salaire moyen des métiers de l''informatique'
},
xAxis: {
categories: ['Architecte logiciel', 'Développeur logiciel', 'Infogérance']
},
yAxis: {
title: {
text: 'Salaire moyen'
}
},
series: [{
name: 'Femmes',
data: [60000, 45000, 25000]
},
{
name: 'Hommes',
data: [75000, 48000, 27500]
}]
});
});
</script>
让我的图形动态地使用PHP变量而不使用静态变量,我错过了什么?
在JavaScript函数中回显变量之前,必须先初始化变量。因此,将加载这些变量的PHP放置在<script>
之上
series: [{
name: 'average salary',
data: document.write(data1)
},
{
name: 'max salary',
data: document.write(data2)
},
{
name: 'min salary',
data: document.write(data3)
}]
document.write(data1/2/3/...)
后的额外分号