我正在尝试使用 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;
});
我在那里有控制台调用来尝试调试它,我从第二个未定义的第一个 .log() 中得到 4,从第三个得到 NaN。从这三个中,我可以看到该变量没有传递到 .on() 处理程序函数中。
日历生成页面included_once在索引页面上,然后使用 AJAX 重新生成当月的正确数据。我需要 get 字符串中经过的月份才能知道我需要从当前月份偏移多远。
感谢您的帮助!!
只是不要在函数体内使用 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
});