0
 <!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スクリプトによってコーディングされています。どうも

問題はこの行です

<?php $newanswer = 50; ?>

この行に値を渡すことはできません:

 var newanswer = <?php echo"$newanswer"; ?>

50の値がこの行に表示されないようにします。

 data: [newanswer, 20, 30, 40, 50, 60, 70, 80, 90, 95, 10, 20]
4

5 に答える 5

3

PHP には JS の概念がないため、単純に...

data: [<?php echo $newanswer ?>, 20, 30, 40, 50, 60, 70, 80, 90, 95, 10, 20]

ただし、JS コード ブロックに直接出力するということは、JS コードに構文エラーを導入しないように非常に注意する必要があることを意味することに注意してください。1 つのエラーで、コード ブロック全体が 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 になります。

于 2012-10-16T03:58:41.357 に答える
2

コードのこの部分を上に移動する必要があります。

<?php
$newanswer = 50;
?>

そして、この部分:

var newanswer = <?php echo"$newanswer"; ?>

次のように書き直したほうがよい:

var newanswer = <?php echo json_encode($newanswer); ?>;

編集

その最後の部分は、 Marc B's answerに見られるように、さらにうまく書くことができます。

于 2012-10-16T03:58:33.647 に答える
0

隠し値を次のような形式で入力します

<input type="hidden" name="newanswer" id="newanswer" value="<?=$newanswer; ?>" >

そして今、getElementByIdあなたを使っての値を得ることができます$newanswer

于 2012-10-16T03:59:15.673 に答える
0

コードの最後で、使用に PHP 変数を定義しています。JavaScript に渡す前に定義するだけです。

于 2012-10-16T04:02:25.657 に答える