将变量从PHP传递给Javascript:意外的令牌?

时间:2016-05-05 04:13:42

标签: javascript php

我的总体目标是将一组数字从php传递给js。我在其他地方看到了解决方案只是放在javascript中,所以我一直在尝试。但是,我一直收到错误“意外的令牌?”当我添加与PHP的行。我已经检查过$ ztable实际上是我想要的变量,它确实存在。下面是我尝试过的三个不同的例子,所有这些例子都返回了相同的错误。我已经尝试了一些其他方法从php获取变量到javascript,但似乎没有一个适合我。如果我编写的代码有问题请告诉我,或者如果有另一种传输变量的简单方法,我很乐意听到它。使用我的应用程序,变量只传递一次,因此速度不是问题,安全性也不是(出于不同的原因)。

<script>
ztable = new array(<?php echo json_encode($ztable); ?>);
....other unrelated code.....
</script>

<script>
var ztable = <?php echo json_encode($ztable); ?>;
....other unrelated code.....
</script>

<script>
var ztable = <?php echo $ztable; ?>;
....other unrelated code.....
</script>

编辑:我没有使用jQuery,我的php代码非常简单,它只是根据用户输入的行生成一个数字数组

$ ztable = [0.001,0.003,0.006,0.01,0.02,0.04,0.07,0.11,0.16,0.23,0.31,0.4,0.5,0.4,0.31,0.23,0.16,0.11,0.07,0.04,0.02,0.01 ,0.006,0.003,0.001];

2 个答案:

答案 0 :(得分:1)

我认为你正在寻找类似的东西:

<script type="application/javascript">
    var ztable = JSON.parse(<?php echo json_encode(isset($ztable) ? $ztable : array()); ?>);
    //.... more stuff
</script>

您的示例似乎没有从javascript中的字符串转换json。

如果未定义$ztable,这也会提供默认的空数组,这将正常失败。

答案 1 :(得分:0)

第二个例子完美无缺。这是有效的,我认为这是你可能想要做的。

<script>
var ztable = <?php echo json_encode($ztable); ?>;
....other unrelated code.....
</script>

这里的潜在问题可能是函数json_encode is not defined。我建议先检查一下。

这里要做的另一件事是检查PHP的输出,如果仍然无效,请在你的问题中显示。

第3个例子看起来很破碎

<script>
var ztable = <?php echo $ztable; ?>;
....other unrelated code.....
</script>

$ztable是一个数组。您期望如何回应它?这会带来警告,结果如下所示

<script>
    var ztable = PHP Notice:  Array to string conversion in /home/victor/Projects/emailmarketing/rank/code.php on line 14
Array;
</script>

即使没有显示警告,结果看起来也不像有效的JS代码。