Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.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_Include - Fatal编程技术网

从外部JS读取PHP文件变量

从外部JS读取PHP文件变量,php,javascript,include,Php,Javascript,Include,我如何检索,通过JS,我指的是一个外部脚本,在php包含文件中分配的一些变量的值,如下面的一个 <?php $var1 = "a"; $var2 = "foo"; ?> 假设您的意思是使用AJAX请求检索变量……最好的方法是: <?php $array["var1"]="a"; $array["var2"]="foo"; echo json_encode($array); ?> var1和var2将是json.var1/jso

我如何检索,通过JS,我指的是一个外部脚本,在php包含文件中分配的一些变量的值,如下面的一个

<?php 
    $var1 = "a";
    $var2 = "foo";
?>

假设您的意思是使用AJAX请求检索变量……最好的方法是:

<?php
    $array["var1"]="a";
    $array["var2"]="foo";
    echo json_encode($array);
?>
var1和var2将是json.var1/json.var2

编辑:

在这种情况下,您应该能够执行以下操作:

<script type="text/javascript">
    var phpvars = <?php echo json_encode($array); ?>;
<script>

只需将其放在包含whistle.js的上面,该文件中的Javascript就可以通过phpvar访问变量。更改variables.php文件,使其具有与上述相同的格式,但不重复该文件。

为了重申之前的反馈,php用于生成HTML-php文件本身永远不可用于浏览器。您可以使用variables.php生成隐藏标记,然后使用JavaScript读取它们

例如

variables.php输出:

<div id='varA' style='display:none'>foo</div>
  <input id='varB' type='hidden' value='bar' />

variables.php输出:

<div id='varA' style='display:none'>foo</div>
  <input id='varB' type='hidden' value='bar' />

我担心echo语句会干扰HTML页面,这是包含/需要此PHP文件的第三个文件?抱歉,我对AJAXOkay完全陌生,所以基本上,结构是main.php requires/includes variables.php,main.php中有Javascript?在这种情况下,您只需要在javascript所在的上面包含variables.php,并将其直接回显到javascript中。如果javascript来自一个.js文件,那么您需要在该.js文件之前将这些变量回显到一个脚本标记中,并让它使用这些变量。哦,对不起,更像是这样:main.php需要variables.php并调用whistles.js来逐步增强;单击时,whistles.js必须从变量中获取一些值。phpy您不能仅使用javascript从PHP文件中获取变量。一个服务器端,一个客户端。Javascript在被服务器解析之前无法与PHP交互,您需要找到一种将变量显示为文本的方法。
 document.getElementById('varB').value