我正在尝试使用下一个和上一个点击事件创建日历。
当页面加载时,它将加载当前月份和年份。我将下一个和上一个函数添加到下个月或上个月,当这两个中的任何一个点击时。我添加了一个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,例如。 6月至7月等,当到达12月至1月时,它将改变当年。
当用户点击下一个时,变量$ month将捕获该值并用它来显示月份
这些是从第一个脚本获取值的变量。该脚本只工作一次,目前,它在六月到七月更改,但是当我再次单击它时,没有任何反应。知道我在哪里吗?感谢
$month = $_GET['month']+1;
$y = $_GET['year'];
答案 0 :(得分:0)
没有任何反应,因为您总是获取当前数据并为其添加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();
});