我在php
中定义了3个变量$record = "283-161-151";
$rec = explode("-", $record);
$win = $rec[0];
$draw = $rec[1];
$loss = $rec[2];
$ win,$ draw和$ loss echo,所以我知道他们正在工作
当在一个单独的js文件中设置var数据时,我希望将3个变量传递给3个文本标签。
var data = [
{ label: 'Wins', data: '<?php echo $win ?>', color:'green'},
{ label: 'Draws', data: '<?php echo $draw ?>', color:'orange'},
{ label: 'Losses', data: '<?php echo $loss ?>', color:'red'}
];
如果我将每个来自<?php echo $win ?>
的js php调用更改为用于测试图表的实际数字。
我想知道内联php语法是否正确?我尝试了几种不同的格式,希望用一双新眼睛轻松修复。
php code
<?php
$record = "283-161-151";
$rec = explode("-", $record);
?>
<script>
var win = <?php echo $rec[0]; ?>;
var draw = <?php echo $rec[1]; ?>;
var loss = <?php echo $rec[2]; ?>;
</script>
js文件代码
var data = [
{ label: 'Wins', data: var win, color:'green'},
{ label: 'Draws', data: var draw, color:'orange'},
{ label: 'Losses', data: var loss, color:'red'}
];
当我查看页面来源时,我看到了这个
<script>
var win = 283;
var draw = 161;
var loss = 151;
</script>
但仍然没有输出..如果我用最后的js文件替换var win,var draw等,它确实有效。
任何人都知道我是否越来越近了?干杯
答案 0 :(得分:2)
我认为问题是你在引用这些数字。改变它,以便数字不加引号:
var data = [
{ label: 'Wins', data: <?php echo $win ?>, color:'green'},
{ label: 'Draws', data: <?php echo $draw ?>, color:'orange'},
{ label: 'Losses', data: <?php echo $loss ?>, color:'red'}
];
答案 1 :(得分:0)
显然你的PHP变量超出了范围,这是因为echo返回&#39;&#39;。
有一个很好的主题描述&#34; How to define a variable in JavaScript with PHP echo function?&#34;
P.S。:出于测试目的,如果可能的话,您可以尝试将javascript片段嵌入到声明变量的PHP脚本中。
答案 2 :(得分:0)
您正在尝试在javascript文件中运行php。浏览器无法处理服务器代码。 php仅在服务器上运行。
你可以做的是将php变量传递给javascript变量,如下所示: 在页面内(在外部脚本的脚本标记之前):
$record = "283-161-151";
$rec = explode("-", $record);
echo '<script>var plotData='.json_encode($rec).';</script>';
/* displays var plotData=[283,161,151]; */
现在使用已经存在的javascript变量JS将是:
var data = [
{ label: 'Wins', data: plotData[0], color:'green'},
{ label: 'Draws', data: plotData[1], color:'orange'},
{ label: 'Losses', data: plotData[2], color:'red'}
];