在javascript变量中存储PHP变量的值

时间:2015-04-07 11:10:50

标签: javascript php

我试图将php变量传递给javascript变量(在不同的文件上)。

myPHP.php

<?php
include'myJS.php';
$hello="Hello";
echo json_encode($hello);  

myJS.php

<html>
<head>
    <title>Hello</title>
    <script>
        var data;
        var oReq = new XMLHttpRequest();
        oReq.onload = function () {
            data = this.responseText;

            alert(data);
        };
        oReq.open("get", "myPHP.php", true);
        oReq.send();
    </script>
</head>
</html>

我正在运行myPHP.php文件(而不是myJS.php)。但是,我没有在变量&#39;数据&#39;中得到任何错误。在myJS.php文件中,不是存储只有PHP变量的值,而是存储整个myJS.php文件。如何避免这种情况并仅存储变量值?

P.S。这是一个示例代码,我将使用动态数据实现此逻辑,因此请建议我使用可以处理动态数据的解决方案。

1 个答案:

答案 0 :(得分:3)

您不需要ajax用于静态数据,只需生成javascript:

<?php
$hello="Hello";
?>

<html>
<head>
    <title>Hello</title>
    <script>
        var data = "<?php print $hello; ?>";
    </script>
</head>
</html>

如果数据不是静态的,并且您想使用ajax,请将文件分开:

myJS.php:

<html>
<head>
    <title>Hello</title>
    <script>
        var data;
        var oReq = new XMLHttpRequest();
        oReq.onload = function () {
            data = this.responseText;
            alert(data);
        };
        oReq.open("get", "myPHP.php?ajax=1", true);
        oReq.send();
    </script>
</head>
</html>

这是myPHP.php:

<?php
if(!isset($_GET['ajax']))
{
    include('myJS.php');
}
else
{
    $hello="Hello";
    echo json_encode($hello);  
}