从其他php文件访问Java脚本变量

时间:2019-02-06 05:27:26

标签: javascript

我有三个PHP文件。第一拳是index.php,第二拳是cal.php,第三拳是search.php。在cal.php中,我在javascript中设置了两个变量。

<script>
    $(document).ready(function () {
        var startDate = "hi";
        var endDate = "there";
        console.log("Callback is being set!");
    });
</script>

然后我将此cal.phpsearch.php文件包括在我的index.php文件中。

<div class="col-md-6 mt-20 pad-sm-0">
                <?php
                include("searchUI.php");
                ?>
            </div>
            <div class="col-md-6 mt-20 pad-sm-0 hidden-sm hidden-xs">
                <?php
                include("calendarUI.php");
                ?> 
            </div>

在按钮上单击index.php,我要访问cal.php文件中search.php中设置的变量。我尝试了以下操作,但在控制台中未定义。

function performSearch() {
        console.log(window.startDate);
        console.log(window.endDate);
}

3 个答案:

答案 0 :(得分:0)

var具有函数作用域,因此您在其中定义的任何内容都只能在该函数内部访问。

您可以不使用var关键字进行声明,尽管它在实践中被广泛使用,但仍将变量添加到全局范围中。 (除非您使用use strict;运行会引发错误)

$(document).ready(function () {
    startDate = "hi";  // creates global variable, not recommended
    endDate = "there";
    console.log("Callback is being set!");
});

一种比较不错的方法*是将变量设置为窗口对象的键,类似于您尝试访问它们的方式。

<script>
$(document).ready(function () {
    window.startDate = "hi";
    window.endDate = "there";
    console.log("Callback is being set!");
});
</script>

答案 1 :(得分:0)

将脚本更改为此:

<script>
    var startDate, endDate;;
    $(document).ready(function () {
        startDate = "hi";
        endDate = "there";
        console.log("Callback is being set!");
    });
</script>

希望它能起作用

答案 2 :(得分:0)

您可以删除var关键字,这将使变量成为全局变量,如下所示。尽管不建议使用全局变量,因为具有相同名称的多个全局变量会产生不良后果。

默认情况下,全局变量绑定到全局窗口对象,因此您无需显式编写window.startDate。

<script>
  $(document).ready(function () {
     startDate = "hi";
     endDate = "there";
     console.log("Callback is being set!");
  });
</script>