2012-10-16 230 views
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脚本编码。 THX将变量值从Php传递到Javascript

的问题是这样的线

<?php $newanswer = 50; ?> 

不能传递在这条线的值:

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

使得值不显示在该行:

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

我的一些参考的传递值:HTTP://p2p.wrox .com/php-faqs/11606-q-how-do-i-pass-php-variables-javascript.html –

+2

..当然它不起作用?在定义它之前,您正在使用该变量。 – Daedalus

回答

2

这部分代码必须一直向上移动:

<?php 
$newanswer = 50; 
?> 

而且这一部分:

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

更好改写为:

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

编辑

这最后一部分可以更好写,看到Marc B's answer

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] 

正因为如此,你会VALIS JS最终即使$ newanswer为空或以其他方式不确定。

+0

+1仅用于将值直接转储到数组中:) –

0

将一个隐藏的价值形式一样

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

现在使用getElementById你可以得到的$newanswer

+0

”>我只需要放置它在脚本的顶部,然后通过以下数据改变:data:[newanswer,20,30,40,50,60,70,80,90,95,10,20]:[getElementById('newanswer'),20 ,30,40,50,60,70,80,90,95,10,20] –

0

你定义PHP变量后的值用它,在结束码。只需在之前将其定义为即可将其传递给JavaScript。

0

值EHCO到一个隐藏字段

然后去javascript和添加以下代码

var xi=(document.getElementById("aa")).value;