代码之家  ›  专栏  ›  技术社区  ›  codeNinja

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

  •  0
  • codeNinja  · 技术社区  · 6 年前

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

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

    我把这个包括进去 搜索.php 文件在我的 索引.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>
    

    索引.php 计算程序.php 搜索.php 文件。我尝试了以下操作,但在控制台中没有定义。

    function performSearch() {
            console.log(window.startDate);
            console.log(window.endDate);
    }
    
    3 回复  |  直到 6 年前
        1
  •  0
  •   Dhananjai Pai    6 年前

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

    你可以在没有 关键字,尽管这是一个非常不受欢迎的实践,但它将变量添加到全局范围中。(除非你和 use strict;

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

    一个有点体面的方法是将变量设置为window对象的键,类似于您尝试访问它们的方式。

    <script>
    $(document).ready(function () {
        window.startDate = "hi";
        window.endDate = "there";
        console.log("Callback is being set!");
    });
    </script>
    
        2
  •  0
  •   Zartosht Sepideman    6 年前

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

        3
  •  0
  •   Sagar Agrawal    6 年前

    您可以删除var关键字,这将使变量成为全局变量,如下所示。尽管拥有全局变量不是一个推荐的方法,因为具有相同名称的多个全局变量可能会产生不希望的副作用。

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