[英]php arrays in external js file
我收到此更改请求,将所有内联javascript都移动到外部文件。 我尝试了一个简单的复制粘贴到一个新文件,但是没有运气。 我在以下行出现错误: var grp_list = <?php echo json_encode($arr_grp); ?>;
var grp_list = <?php echo json_encode($arr_grp); ?>;
和url: "<?php echo $_SERVER['PHP_SELF']; ?>"
我至少发生了20次此类情况。 如何替换外部javascript中的这些php变量? 我检查了很多论坛,但没有找到任何解决方案。
非常感谢你的帮助!!
好吧,您的PHP脚本中有动态地“组合”了JavaScript。 最简单的解决方案是忘记翻译变量。 而是使用自定义标头将所有JS代码(包括PHP部分)放入一个PHP文件中,该文件将伪装成JS文件。 因此,您的“ JavaScript”文件将如下所示:
<?php
// Send a custom header, so that it will be interpreted as a js file.
header("Content-Type: application/javascript");
?>
JavaScript and PHP mixed code will go in here, with no modifications
将此文件另存为“ javascript.php”。 然后,在您的主要HTML或PHP文件中,将其添加为:
<script src="javascript.php"></script>
而已! javascript.php文件将在服务器中解释为PHP文件,并由浏览器以JS检索。 仅对javascript文件中PHP的处理方式表示关注:它可能取决于您在主脚本中所处的上下文,因此可能需要进行其他调整。
简而言之,如果不进行PHP生成文件的工作,就无法将PHP变量直接传递给外部JS文件,然后发送自定义标头将文件视为JavaScript(编辑:如果这听起来像是可行的解决方案,请参阅Marcovecchio的帖子) )...一种快速的解决方案是内联传递变量,使它们成为全局变量,然后在外部文件中使用它们。 这将使您的大部分JavaScript都位于外部文件中,而且还允许您将变量从PHP传递到JS。
绝对不是最好的解决方案,但它很可能是最容易上手的。
这是一个例子:
<script type="text/javascript">
var grp_list = <?php echo json_encode($arr_grp); ?>;
var url = "<?php echo $_SERVER['PHP_SELF']; ?>";
</script>
<script type="text/javascript" src="external.js"></script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.