js文件中的PHP变量
可能重复:js文件中的PHP变量,php,javascript,Php,Javascript,可能重复: 如何将PHP变量的值放入Javascript变量中? 这就是我现在在js文件中的内容: test=<?php echo $country; ?>; test=; 将JS代码放入.php文件中,然后像这样尝试: <html> <script language="JavaScript"> function echoSession(num) { window.document.newForm.mybox.value=num; <?
如何将PHP变量的值放入Javascript变量中? 这就是我现在在js文件中的内容:
test=<?php echo $country; ?>;
test=;
将JS代码放入.php文件中,然后像这样尝试:
<html>
<script language="JavaScript">
function echoSession(num)
{
window.document.newForm.mybox.value=num;
<?PHP echo $VAR ?>
}
</script>
</html>
函数echoSession(num)
{
window.document.newForm.mybox.value=num;
}
关键是您的文件应该是一个PHP文件,以便服务器将其解析为PHP。如果它是一个.js文件,它将不起作用请将js代码放入一个.php文件中,然后像这样尝试:
<html>
<script language="JavaScript">
function echoSession(num)
{
window.document.newForm.mybox.value=num;
<?PHP echo $VAR ?>
}
</script>
</html>
函数echoSession(num)
{
window.document.newForm.mybox.value=num;
}
关键是您的文件应该是一个PHP文件,以便服务器将其解析为PHP。如果它是一个.js文件,它将不起作用为了能够在Javascript文件中使用标记,您必须: 1) 修改.htaccess文件,将*.js作为要通过PHP引擎处理的文件的有效扩展名。(谷歌搜索一下) 2) 将Javascript文件扩展名从*.js更改为*.php
3) 在主PHP/HTML文件中声明通过PHP设置的变量,而不是外部Javascript文件。为了能够在Javascript文件中使用标记,必须: 1) 修改.htaccess文件,将*.js作为要通过PHP引擎处理的文件的有效扩展名。(谷歌搜索一下) 2) 将Javascript文件扩展名从*.js更改为*.php
3) 在主PHP/HTML文件中声明通过PHP设置的变量,而不是外部Javascript文件。请记住,浏览器并不关心服务器端(PHP)代码是什么。它只关心呈现的代码(Javascript和HTML)是什么样子。所以你的PHP
test=<?php echo $country; ?>;
这是有效的Javascript,但它没有将test
设置为具有值USA
。它将test
设置为变量USA
的值,该变量几乎肯定是未定义的。您需要使用引号使Javascript字符串文字化:
test="<?php echo $country; ?>";
并且会做你期望的事情
现在我看到您已经提到该文件是一个js文件。我在上面假设它是一个带有HTML文件的标准PHP。事实上,以上所有内容仍然有效。然而,将PHP脚本作为Javascript提供只是有点棘手
首先,将您的文件命名为filename.php
(或者您想要的任何其他名称)。这是让Web服务器知道如何用PHP解析它的最简单方法。然后使用以下说明让浏览器知道该文件是Javascript内容:
header('Content-Type', 'text/javascript');
在将任何内容发送到浏览器之前,将其放在文件的最顶端。然后,您可以随意包含PHP变量。请记住,浏览器并不关心服务器端(PHP)代码是什么。它只关心呈现的代码(Javascript和HTML)是什么样子。所以你的PHP
test=<?php echo $country; ?>;
这是有效的Javascript,但它没有将test
设置为具有值USA
。它将test
设置为变量USA
的值,该变量几乎肯定是未定义的。您需要使用引号使Javascript字符串文字化:
test="<?php echo $country; ?>";
并且会做你期望的事情
现在我看到您已经提到该文件是一个js文件。我在上面假设它是一个带有HTML文件的标准PHP。事实上,以上所有内容仍然有效。然而,将PHP脚本作为Javascript提供只是有点棘手
首先,将您的文件命名为filename.php
(或者您想要的任何其他名称)。这是让Web服务器知道如何用PHP解析它的最简单方法。然后使用以下说明让浏览器知道该文件是Javascript内容:
header('Content-Type', 'text/javascript');
在将任何内容发送到浏览器之前,将其放在文件的最顶端。然后,您可以随心所欲地包含PHP变量。在将变量传递给JavaScript之前,不要忘记正确地转义变量。用于此,因为它以适合与JavaScript一起使用的方式转义和编码您的值:
test=;
永远不要简单地发送未编码的变量,因为它可能会破坏东西,或者,更糟糕的是,如果值来自不受信任的来源,则会危及您的安全
此外,如果希望能够在文件中插入动态php代码,请将文件重命名为.php
,而不是.js
。在将变量传递给JavaScript之前,不要忘记正确转义变量。用于此,因为它以适合与JavaScript一起使用的方式转义和编码您的值:
test=;
永远不要简单地发送未编码的变量,因为它可能会破坏东西,或者,更糟糕的是,如果值来自不受信任的来源,则会危及您的安全
另外,如果希望能够在文件中插入动态php代码,请将文件重命名为.php
,而不是.js
。有json编码(http://php.net/manual/de/function.json-encode.php)方法打印javascript的php变量
test = <?php echo json_encode($value) ?>
测试=
即使$value是一个数组,也可以工作,但在您的情况下,如果它也是一个字符串。有json\u编码(http://php.net/manual/de/function.json-encode.php)方法打印javascript的php变量
test = <?php echo json_encode($value) ?>
测试=
即使$value是一个数组,也可以工作,但在您的情况下,如果它也是一个字符串。这是我在处理js与php时经常遇到的问题。随着我的JS应用程序变得越来越复杂,人们越来越希望将我的所有JS都保存在库文件中,并尽可能保持我的php干净。我开始使用的一个解决方案是执行以下操作:
js文件:
myNamespace.bootstrap = function( payload ){
...
// internally boot up all the modules that need
// the data, passing it where relavent
module.load( payload );
}
php文件:
...
<script type="text/javascript">
myNamespace.bootstrap(<?= json_encode($payload_object); ?>);
</script>
</body>
。。。
myNamespace.bootstrap();
这将为所有脚本提供一个数据注入点,在实际php中使用一行js。应该允许您轻松管理javascript中的数据依赖项,因为您可以在