php变量到javascript(通过json)

时间:2018-04-03 02:32:47

标签: javascript php jquery json

我知道这已经讨论过,但我似乎无法做任何事情。我正在尝试将变量$thedate从PHP文件mainclass.php传递到JS函数中的变量datestr来自文件footer_script.php

JS:

function getsched(str)
{
    //some code
    $.ajax({
        type: 'POST',
        url: 'mainclass.php',
        data: 'date=' + str + '&form=getsched',
        success: function(data) {
            var datestr = <?php echo json_encode($thedate); ?>;
            $("#" + str).html(data);
        }
    }).error(function() {
        alert(data);
    });
}

PHP:

case "getsched":
    //some code
    //some query

    while($row = mysql_fetch_array($result))
    {
        //more code
        $thedate = $_POST['date'];
    }
    //other code here
break;

当我提醒datestr时,我得到undefined。如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

你不能像这样使用PHP。您应该从PHP获取响应并使用它。在PHP中,您应该输出类似于此的响应(只是JSON响应的一个示例):

echo json_encode(array('thedate', '2018-4-3'));

你可以在JS中获得2018-4-3的值:

function getsched(str)
{
    //some code
    $.ajax({
        type: 'POST',
        url: 'mainclass.php',
        data: 'date=' + str + '&form=getsched',
        success: function(data) {
            var datestr = data.thedate;
            $("#" + str).html(datastr);
        }
    }).error(function() {
        alert(data);
    });
}

答案 1 :(得分:0)

您需要替换以下行:

var datestr = JSON.stringify(date);
alert(datestr);

@font-face {
    font-family: 'RobotoBold';
    src: url('./Roboto-Bold.ttf');
}

它会将服务器响应转换为JSON编码的字符串。然后,编码的字符串将显示在警报中。见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

答案 2 :(得分:0)

在包含JS文件之前,在HTML / PHP文件中分配一个全局变量。

var datestr = <?php echo $thedate; ?>;

然后,您可以从JS文件中访问datestr变量。