说我有someJavascript.js
个文件和somePHP.php
文件。在我的php文件中,我有一些$foo
。如果它位于不同的文件中,如何设置var something = $foo
?
我尝试的事情:
var something = '<?php echo $foo ?>';
- 这只是给了我一串完全相同的短语。var something = '<?php echo json_encode($foo); ?>';
同样的事情,只是一个字符串。 任何帮助将不胜感激!感谢。
答案 0 :(得分:1)
您的问题是您的网络服务器没有像处理.php文件那样处理.js文件。所有.js文件都按原样放到浏览器中。
一个简单的选择是在somePHP.php中包含一个隐藏元素,然后在someJavascript.js中引用它:
<html>
<body>
<input type="hidden" id="foo" value="<?php echo $foo; ?>">
</body>
</html>
var foo = document.getElementById('foo').value();
答案 1 :(得分:0)
正确的方法是使用eval: var something = eval('') 请记住,应该仔细使用json,并且有很多json库可以以更安全的方式将json数据解析为JavaScript对象!
答案 2 :(得分:0)
包含整个文件有点笨重,但它完成了工作,是吗? 您的文件必须是.php
文件才能使用php变量。(或者您的服务器必须配置为使用php引擎处理.js
个文件)
<?php include('somePHPfile.php') ?>
<script type="text/javascript" language="javascript">
var foo = "<?php echo $foo; ?>";
</script>
答案 3 :(得分:0)
我看到的方式是你有三个选择:
AddType application/x-httpd-php .js
添加到apache2.conf或httpd.conf文件中。 IIS中的类似想法。这个想法只有在您可以访问配置文件时才有效,因此不能在共享服务器上访问。 var a = '<?php echo $someVar; ?>';
。然后在原始文件中写<script src='/path/to/your/phpScript.php'></script>
。基本上是khaverim的答案。