在我的一个网站中,我需要使用PHP'foreach'来保留包含一些Javascript代码。在此代码中包含在foreach循环中更改的PHP $变量。
foreach ($a as $b) {
include("javascript.php");
}
javascript.php包含以下代码:
<script>
$(".<?php echo $somevariable?>").something;
</script>
我的问题是:加载包含PHP变量的javascript的最有效(如果有的话)方式是什么?
我一直在读,最好在.js脚本中调用大型javascript代码而不是在页面上编写它,但显然.js文件不能有PHP。
感谢您的见解。
答案 0 :(得分:1)
你可以添加:
header("Content-type: text/javascript");
到.php文件的顶部,它将呈现为.js文件。
答案 1 :(得分: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”