在 Javascript 文件中使用 <?php 时出现“意外的令牌<”
"Unexpected token <" when using <?php in a Javascript file
作为新手,我正在尝试将变量从PHP传递到Javascript。
在我的 php 页面中,我使用了一个测试变量:
$testval = "x";
在我的.js文件中:
var exarr = <?php echo json_encode($testval); ?>;
我已经尝试了几件事,<但是当我包含">
我做错了什么?
谢谢!
为了在任何文件中使用 PHP 代码,Web 服务器必须通过 PHP 处理器运行该文件。 默认情况下,这配置为对.php
文件进行,但不对.js
文件进行。
您可以将服务器配置为将.js
文件作为PHP处理,但这通常是不明智的。 至少,它为这些文件创造了许多不必要的开销,因为它们中的大多数不会(或不应该)有PHP代码。
如果不更多地了解您要完成的任务的结构,就很难建议采用"最佳"方法。 选项包括(但不限于):
- 定义那个
var
在引用JS文件的PHP页面上,从而使它可用于JavaScript代码。 - 将值放在页面元素中可以通过 JavaScript 代码访问的位置,可以是表单值还是数据值。
- 在加载页面后向服务器发出 AJAX 请求以获取该值(和其他值)。
如果你在js文件中有它(比如somefile.js),那么PHP默认情况下不会解析该文件。在链接到该JS的PHP文件中,您可以输出脚本标记和所需的var,如下所示:
echo "<script>var exarr = " . json_encode($testval) . "; </script>";
并确保您的脚本在该代码之后链接;
.js文件不是由PHP编译的。 最简单的解决方法是将 Javascript 放在.php中的<script>
块中,但您正在犯最基本的服务器端/客户端错误之一,应该重新考虑您的整个方法。
相关文章:
- 未捕获的语法错误:意外的令牌,
- 当其他解析器认为意外的令牌有效时,json.parse会失败
- 意外的令牌模块生成失败:SyntaxError
- 意外的令牌非法javascript/metrol
- 三元条件中出现意外的令牌中断
- DynamoDB和Node Js:意外的令牌h
- RegEx中出现意外的令牌错误
- data.php:1未捕获的语法错误:意外的令牌:
- 错误:[$parse:syntax]语法错误:令牌''是意外的令牌
- Jquery脚本未在运行时加载编辑:意外的令牌
- 未捕获的语法错误:意外的令牌非法?看起来不错
- "未捕获的SyntaxError:意外的令牌ILLEGAL“;当我通过AJAX发送html时
- 获取意外的令牌ILLEGAL JS错误
- JavaScript-Gulp/Browserify:SyntaxError:意外的令牌
- Jquery .ajax() SyntaxError: 意外的令牌 N.
- 未捕获的语法错误:意外的令牌 = (Chrome)
- JavaScript意外的令牌<,有什么方法可以逃避错误(或至少跳过那些无用的字符)
- “语法错误:意外的令牌)”在 javascript 调用中,当 eval(value) 为空时
- 未捕获的语法错误:使用 iFrame 时出现意外的令牌 }
- HTML 无法识别我要求它运行的 javascript 文件,语法错误:意外的令牌“<”(匿名函数)script.js: