Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jQuery选择器回调函数中的全局Javascript变量_Php_Javascript_Jquery - Fatal编程技术网

Php jQuery选择器回调函数中的全局Javascript变量

Php jQuery选择器回调函数中的全局Javascript变量,php,javascript,jquery,Php,Javascript,Jquery,我试图用jQuery调用Ajax,需要将一个用PHP在页面加载时设置的变量传递给两个单独的函数,以便按月份向前或向后移动日历 var ajax_load = "Loading...", loadUrl = "calendar_backend.php", month = parseInt(<?php echo $month ?>); console.log(month); month = <?php echo $month ?>; $("#

我试图用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;
});
我在那里有控制台调用来尝试调试它,第一个控制台调用得到4个。第二个控制台调用得到未定义日志,第三个控制台调用得到NaN。从这三个方面,我可以看到变量没有被传递到.on处理函数中

日历生成页面包含在索引页面上一次,然后使用AJAX重新生成当月的正确数据。我需要get字符串中传递的月份,以了解需要抵消的当前月份的距离

谢谢你的帮助

不要在函数体中使用var关键字。var将在success函数中实例化一个新变量。而你使用的递减/递增运算符是错误的,这是唯一的月份++;及月份;


您需要去掉函数中的var关键字。此外,当使用递增/递减运算符时,不应同时使用赋值;您只需要++月或-月就可以了。我在jQuery网站上更新了您的建议和建议,并设置了一些函数来调用jQuery.onclick,function next_monthmonth{console.logmonth;$calendar.htmlajax_load.loadloadUrl,month=+month+&go=next;month++console.logmonth;}$calendar_box.onclick,'next_month',函数{next_monthmonth;};但当我再次单击时,它仍然使用月份的原始值,并且没有更新。Get已排序!非常感谢!!
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
});