-5

以下は、および( ) コードrecherche.phpを含み、クエリを実行する私の php ファイル ( ) の抜粋です。HtmlJavascriptJQuery HighchartsMySQL

しかし、タグ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/>";
    ....

これは、ハイチャート グラフィックスを起動するコマンドです。

    <div id="containerxx" style="width:100%; height:400px; margin:0 auto"></div>

しかし、残念なことに、チャートは画面に表示されません。

しかし、同じphpファイルの静的値で同じことを行うと、それが機能し、Webページでハイチャートグラフィックを取得できます。

たとえば、同じファイルに上記のスクリプトではなく以下のスクリプトを記述すると、機能し、グラフィックがページに表示されます。

    <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
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 に答える
0

JavaScript 関数で変数をエコーする前に、変数を初期化する必要があります。したがって、これらの変数をロードする PHP を<script>

于 2013-02-26T11:17:26.360 に答える