我正在尝试将 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/