0

在我的一个站点中,我需要使用 PHP 'foreach' 来继续包含一些 Javascript 代码。在此代码中包含在 foreach 循环中更改的 PHP $variables。

foreach ($a as $b) {
   include("javascript.php");  
}

javascript.php 包含如下代码:

<script>
   $(".<?php echo $somevariable?>").something;
</script>

我的问题是:加载包含 PHP 变量的 javascript 的最有效(如果有的话)方法是什么?

我一直在阅读,最好在 .js 脚本中调用大型 javascript 代码,而不是在页面上编写它,但显然 .js 文件不能包含 PHP。

感谢您的洞察力。

4

2 回答 2

1

你可以加:

header("Content-type: text/javascript");

到您的 .php 文件的顶部,它将呈现为 .js 文件。

于 2012-04-12T03:58:09.323 回答
1

这是我将使用的方法:

使用包含 $somevariable 的 Javascript 变量创建 HTML 文件:

<html>
<head>
    <script src="my_global.js"></script>
</head>
<body>
    Foo
<script>
    var somevariable = "<?php echo $somevariable ?>";
</script>
</body>
</html>

然后让 Javascript 文件在页面准备就绪后访问此值(在此示例中我使用的是 jQuery .ready()):

$(document).ready(function() {
    alert(somevariable);
});

这是在行动:http: //jsfiddle.net/2zeQM/

这允许缓存 Javascript 文件(它是静态的而不是动态的)。并且动态数据被加载到用户请求的页面上。

您确实需要小心,您使用的变量名不会被任何其他 Javascript 代码重用。为了防止出现问题,我会在变量名前面加上前缀。例如,我可以称它为“xy_somevariable”,而不是称它为“somevariable”

于 2012-04-12T05:30:19.980 回答