JS:Uncaught SyntaxError:使用< 时,浏览器控制台中出现意外的标记“< ”?php echo json_encode($_SESSION['

643ylb08  于 2023-08-08  发布在  PHP
关注(0)|答案(2)|浏览(113)

我在PHP中定义了一个数组:

$outofstock = array ( 0, 0, 0, 0, 0, 0, 1, 0 );
$_SESSION['outofstock']=$outofstock;

字符串
我试着把它传递给一个JS脚本:

var outofstock = <?php echo json_encode($_SESSION['outofstock']); ?>;


我得到一个执行停止的错误:
未捕获的语法错误:意外的token '<' VM563 newhed14.39.js:1
同样的语句也适用于HTML文件中的另一个脚本。
我做错了什么?
谢谢你,谢谢

cbjzeqam

cbjzeqam1#

您的文件名为newhed14.39.js这一事实表明,您正在将此特定文件作为.js文件静态提供,而不是通过PHP提供。这意味着PHP将不会运行-PHP命令将在文件中结束,因此显然会以语法错误结束。检查是否是这种情况很容易-只需在浏览器上打开开发人员控制台,并查看抛出错误的文件; PHP命令应该是可见的(如果PHP已经处理了文件,则不应该是可见的)。
解决方案是将变量移动到<script>标记中的PHP脚本生成的动态输出中,并编辑JS以使用该变量(例如,通过让<script>标记调用.js文件中定义的函数)。

x7rlezfr

x7rlezfr2#

原因是“PHP脚本不能在.js文件中运行”。你需要这样做:
在HTML文档中:

<input type="hidden" id="myArray" value="<?php echo json_encode($_SESSION['outofstock']); ?>">

字符串
然后你可以像这样在js中访问这个数组:

var array = document.getElementById('myArray').value;
console.log(array)


通过这种方式,你可以在js中访问你的PHP数组。希望对你有帮助…

相关问题