我有三个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.php
和search.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);
}
答案 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>