-5

下面是我的 php 文件 ( recherche.php) 的摘录,其中包含HtmlJavascript( JQuery Highcharts) 代码并运行MySQL查询。

PHP但是,在标签中设置 JQuery 代码时,我无法访问变量head

    <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/>";
    ....

这是启动 highchart 图形的命令:

    <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 变量?

4

2 回答 2

0

您必须先初始化变量,然后才能在 JavaScript 函数中回显它们。因此,将加载这些变量的 PHP 放在您的<script>

于 2013-02-26T11:17:26.360 回答
0
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/...)

于 2013-02-26T11:18:19.167 回答