Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
js文件中的PHP变量_Php_Javascript - Fatal编程技术网

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中的数据依赖项,因为您可以在