繁体   English   中英

外部js文件中的php数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM