在 Javascript 文件中使用 <?php 时出现“意外的令牌<”

"Unexpected token <" when using <?php in a Javascript file

本文关键字:意外 意外的令牌 令牌 文件 Javascript php      更新时间:2023-09-26

作为新手,我正在尝试将变量从PHP传递到Javascript。

在我的 php 页面中,我使用了一个测试变量:

    $testval = "x";

在我的.js文件中:

     var exarr = <?php echo json_encode($testval); ?>;

我已经尝试了几件事,<但是当我包含">

我做错了什么?

谢谢!

为了在任何文件中使用 PHP 代码,Web 服务器必须通过 PHP 处理器运行该文件。 默认情况下,这配置为对.php文件进行,但不对.js文件进行。

您可以将服务器配置为将.js文件作为PHP处理,但这通常是不明智的。 至少,它为这些文件创造了许多不必要的开销,因为它们中的大多数不会(或不应该)有PHP代码。

如果不更多地了解您要完成的任务的结构,就很难建议采用"最佳"方法。 选项包括(但不限于):

  1. 定义那个var在引用JS文件的PHP页面上,从而使它可用于JavaScript代码。
  2. 将值放在页面元素中可以通过 JavaScript 代码访问的位置,可以是表单值还是数据值。
  3. 在加载页面后向服务器发出 AJAX 请求以获取该值(和其他值)。

如果你在js文件中有它(比如somefile.js),那么PHP默认情况下不会解析该文件。在链接到该JS的PHP文件中,您可以输出脚本标记和所需的var,如下所示:

echo "<script>var exarr = " . json_encode($testval) . "; </script>";

并确保您的脚本在该代码之后链接;

.js文件不是由PHP编译的。 最简单的解决方法是将 Javascript 放在.php中的<script>块中,但您正在犯最基本的服务器端/客户端错误之一,应该重新考虑您的整个方法。