![](/img/trans.png)
[英]Using global vars within a function in PHP the way you do it in Javascript
[英]Global Javascript vars in jQuery selector callback function
我正在尝试使用 jQuery 调用 Ajax,并且需要将在页面加载时使用 PHP 设置的变量传递给两个单独的函数,以按月向前或向后移动我的日历。
var ajax_load = "Loading...",
loadUrl = "calendar_backend.php",
month = parseInt(<?php echo $month ?>);
console.log(month);
month = <?php echo $month ?>;
$("#calendar_box").on("click",'#next_month',function(){
console.log(month);
$("#calendar")
.html(ajax_load)
.load(loadUrl, "month=" + month + "&go=next");
var month = ++month;
console.log(month);
});
$("#calendar_box").on("click",'#previous_month',function(){
$("#calendar")
.html(ajax_load)
.load(loadUrl, "month" + month + "&go=previous");
var month = --month;
});
我在那里有控制台调用来尝试调试它,我从第二个未定义的 first.log() 中得到 4,从第三个中得到 NaN。 从这三个中我可以看到变量没有传递到 the.on() 处理程序 function。
日历生成页面在索引页面上包含一次,然后 AJAX 将用于重新生成该月的正确数据。 我需要在获取字符串中传递的月份才能知道我需要抵消当前月份的距离。
谢谢您的帮助!!
不要在 function 正文中使用var
关键字。 var
将在success function
中实例化一个新变量。 而且您使用的递减/递增运算符错误,只有month++;
和month--;
var ajax_load = "Loading...",
loadUrl = "calendar_backend.php",
month = parseInt(<?php echo $month ?>);
console.log(month);
month = <?php echo $month ?>;
$("#calendar_box").on("click",'#next_month',function(){
console.log(month);
$("#calendar")
.html(ajax_load)
.load(loadUrl, "month=" + month + "&go=next");
month++; // Removed var and incressing
console.log(month);
});
$("#calendar_box").on("click",'#previous_month',function(){
$("#calendar")
.html(ajax_load)
.load(loadUrl, "month" + month + "&go=previous");
month--; // Removed var and decressing
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.