无法将php $ .get()函数的输出存储到javascript变量中吗?

时间:2015-08-12 07:46:55

标签: javascript php jquery

我知道有很多关于这个话题的问题,但是我已经搜索过并且搜查过了,所以请你坚持下去。

我试图将php文件的HTTP输出存储到我的javascript变量中,但它并没有像预期的那样工作。

到目前为止,我在客户端有这个:

var modDate;

function getModDate() {
    $.get('checkModDate.php?filename=plot.svg', function (data) {
        modDate = data;
    });
    return modDate;
}

$(document).ready(function () { // Execute when page has loaded
    alert(getModDate());
});

在服务器端:

<?php
$filename = $_GET["filename"];

if (file_exists($filename)) {
  echo filemtime($filename);
}
?>

警报的输出只是“未定义”&#39;。

但是,如果我只是将警报放入getModDate()函数中,如下所示:

function getModDate(){
  $.get('checkModDate.php?filename=plot.svg', function(data) {
       modDate = data;
       alert(modDate);
   });
}

我得到了正确的输出。 我错过了什么!?我已将modDate声明为全局变量,因此我无法弄清楚导致此行为的原因。

我希望你能帮助我。

1 个答案:

答案 0 :(得分:0)

一个词 - 异步。

在第一种情况下,在执行$.get的回调之前触发返回。

建议阅读事件循环和基本异步处理。