[英]Next and Previous function on calendar
我正在尝试使用上一个和下一个点击事件创建一个日历。
页面加载时,将加载当前的月份和年份。 我添加了下一个和上一个功能,可以在单击这两个按钮中的任意一个时转到下个月或上个月。 我添加了一个类似这样的AJAX函数。
这是我的剧本。
$(document).on('click', '#next', function(){
var d = new Date();
var m = d.getMonth();
var y = d.getFullYear();
var str = m + 1;
var str1 = y;
if (str=="" )
{
document.getElementById("calendar_preview").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if(document.getElementById("calendar_preview") != null) {
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("calendar_preview").innerHTML=xmlhttp.responseText;
}
}
}
var url = calendar_vars.plugin_url + "?month=" + str +"&"+"year="+str1;
xmlhttp.open("GET",url,true);
xmlhttp.send();
});
如您所见,这仅在下一个函数上,下一个是span元素,因此,当用户单击它时,它应在月份中添加+1,例如。 六月至七月,依此类推,当到达十二月至一月时,它将更改课程的年份。
当用户单击下一个时,变量$ month将捕获该值并用于显示月份。
这些是将从第一个脚本获取值的变量。 该脚本仅工作一次,目前,它从6月更改为7月,但是当我再次单击它时,什么也没有发生。 知道我想念的地方吗? 谢谢
$month = $_GET['month']+1;
$y = $_GET['year'];
不会发生任何事情,因为您总是在获取当前数据并向其添加1,因此它始终停留在第二个月(当前日期之后的月份)。 要通过它,请执行以下操作:
将这些代码从“ click”函数中删除并在函数之前编写它们:
var d = new Date();
var m = d.getMonth();
var y = d.getFullYear();
所以它应该像这样:
var d = new Date();
var m = d.getMonth();
var y = d.getFullYear();
$(document).on('click', '#next', function(){
var str = m + 1;
var str1 = y;
if (str=="" )
{
document.getElementById("calendar_preview").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if(document.getElementById("calendar_preview") != null) {
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("calendar_preview").innerHTML=xmlhttp.responseText;
}
}
}
var url = calendar_vars.plugin_url + "?month=" + str +"&"+"year="+str1;
xmlhttp.open("GET",url,true);
xmlhttp.send();
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.