繁体   English   中英

如何将变量从PHP传递到外部JS文件?

[英]How do I pass variables from PHP to an external JS file?

我正在尝试将2个变量(其中包含图表数据)传递给外部JS文件(其中包含图表设置)。

在PHP中,我有:

<script type='text/javascript'>
var  final_values = '$final_values';
var  final_names = '$final_names';
</script>

以及外部JS的一部分:

var rawData = "["+final_values+"]";
var ticks = "["+final_names+"]";
var plot = $.plot('#placeholder', [
    { data: rawData ,color: 'rgb(50,179,234)'}
  ], {
    series: {
      bars: {
        show: true, align: 'center', barWidth:0.7
      }
    },
    bars: {
      align: 'center',
      barWidth: 0.3,
      horizontal: true,
      fillColor: { colors: [{ opacity: 0.4 }, { opacity: 1}] },
      lineWidth: 1
    },
    grid: {
      backgroundColor: 'transparent',
      hoverable: true,
      clickable: true
    },
    xaxis: {
      autoscaleMargin: 0.1,
      tickColor: '#5E5E5E',                       
      color:'black',
      ticks: 5
    },
    yaxis: {
      position: 'left',
      ticks: ticks,
      tickSize: 1,
      color:'black'
    }
  });

无效的示例:

final_values = '[209,0],[570,1],[1359,2],[2692,3]';
final_names = '[0,"TheDude"],[1,"nikodemus"],[2,"adrianp55"],[3,"Richard Nasta"]';

如果我将所有JS设置放入页面中,则可以使用,但是我想将所有设置放入外部文件中。

json_encode。

var  final_values = <?php json_encode($final_values);?>;
var  final_names = <?php json_encode($final_names);?>;

警告,尽管与大多数PHP不同,json_encode不是二进制安全的(请打扰我,这不是JSON afaik的限制),因此请确保在编码的内容中只有utf8安全字符,例如,这不会工作:

json_encode(["foo"=>1,"bar"=>"\x00\xFF"] );

-仅仅因为这里的[“ bar”]无效utf8,整个编码失败了:| 愚蠢的PHP。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM