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

标签 javascript php jquery flot

我正在尝试将 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 的限制),因此请确保在您编码的任何内容中都只有 utf8 安全字符,例如,不起作用:

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

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

关于javascript - 如何将变量从 PHP 传递到外部 JS 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26315321/

相关文章:

JQuery无限 slider -剪切和粘贴方法?

如果第一个值相同,Javascript 将第二个数组值加在一起

javascript - 重新排列数组中的对象 javascript

javascript - 经济拒绝 127.0.0.1 :443

javascript - 放大/缩小时传单标记移动

PhP 在选定值的情况下添加天/月

php - $stmt -> execute() 返回 false

java - 什么是更快的 flex 和 Java 或 flex 和 php?

jquery - 如何使用 HTML 和 Jquery 根据文本修复文本区域高度

jquery - 将类别应用于单词的所有出现