高分求助:javascript日历显示问题

java1232 2006-11-25 05:30:22
现在要实现一个日历功能,该日历要求不仅能显示本月的日期,还可以上翻、下翻年和月,同时还要调取数据库中的信息,查询某日数据库中是否有数据,若有数据,则该天的日期用其它颜色显示,并且点击可以弹出窗口以显示详细信息。

请高手指点,最好有示例。谢谢!
...全文
226 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
java1232 2006-11-28
  • 打赏
  • 举报
回复
查询数据库功能还未添加,但加起来很容易了,只要判断一下,就可以了
java1232 2006-11-28
  • 打赏
  • 举报
回复
我用JSP写好了,只是麻烦点,用了3个文件,大家看一下,是否可能改进一下:
jri.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>

<BODY>
<%
Calendar rightNow = Calendar.getInstance();
//out.println(rightNow.get(Calendar.YEAR));
//out.println(rightNow.get(Calendar.WEEK_OF_YEAR));
//out.println(rightNow.get(Calendar.MONTH));
String days[]=new String[42];
for(int k=0;k<42;k++){
days[k]="";
}%>



<table width="200" border="0">
<%//int daycount=rightNow.getActualMaximum(Calendar.DAY_OF_MONTH);
//out.println(daycount);
//out.println(rightNow.get(Calendar.DAY_OF_MONTH));
//rightNow.set(2006,10,15);
//out.println(rightNow.get(Calendar.DAY_OF_WEEK)-1);
//out.println(request.getParameter("ye"));
out.println(Calendar.MONTH);
int today=rightNow.get(Calendar.DAY_OF_MONTH);
int themonth=rightNow.get(Calendar.MONTH);
int theyear=rightNow.get(Calendar.YEAR);
rightNow.set(Calendar.DAY_OF_MONTH,today);
rightNow.set(Calendar.MONTH,themonth);
rightNow.set(Calendar.YEAR,theyear);
rightNow.setFirstDayOfWeek(Calendar.SUNDAY);
rightNow.set(Calendar.DAY_OF_MONTH,1);
int firstIndex=rightNow.get(Calendar.DAY_OF_WEEK)-1;
int maxIndex=rightNow.getActualMaximum(Calendar.DAY_OF_MONTH);
for(int g=0;g<maxIndex;g++){
days[firstIndex+g]=String.valueOf(g+1);
}%>
<tr>
<td><a href="jri1.jsp?m=<%=themonth-1%>&y=<%=theyear%>"><<</a></td>
<td><%=theyear%></td>
<td>年</td>
<td><%=themonth+1%></td>
<td>月</td>
<td><a href="jri1.jsp?m=<%=themonth+1%>&y=<%=theyear%>">>></a></td>
<td> </td>
</tr>
<tr>
<td>日</td>
<td>一</td>
<td>二</td>
<td>三</td>
<td>四</td>
<td>五</td>
<td>六</td>
</tr>
<% for(int a=0;a<6;a++) { %>
<tr>
<% for(int b=a*7;b<(a+1)*7;b++) { %>
<td width="15%" height="16" valign="middle" align="center">
<%if((b-firstIndex+1)==today){%>
<font color="red"><%=days[b]%></font>
<%} else {%><%=days[b]%><%}%></td><% } %></tr><% } %>


</table>


</BODY>
</HTML>

jri1.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>

<BODY>
<%
Calendar rightNow = Calendar.getInstance();
//out.println(rightNow.get(Calendar.YEAR));
//out.println(rightNow.get(Calendar.WEEK_OF_YEAR));
out.println(rightNow.get(Calendar.MONTH));
String days[]=new String[42];
for(int k=0;k<42;k++){
days[k]="";
}%>



<table width="200" border="0">
<%//int daycount=rightNow.getActualMaximum(Calendar.DAY_OF_MONTH);
//out.println(daycount);
//out.println(rightNow.get(Calendar.DAY_OF_MONTH));
//rightNow.set(2006,10,15);
//out.println(rightNow.get(Calendar.DAY_OF_WEEK)-1);
String m=request.getParameter("m");
String y=request.getParameter("y");
int themonth=Integer.parseInt(m);
int theyear=Integer.parseInt(y);
if(themonth>11){
themonth=themonth-12;
theyear=theyear+1;
}else{
themonth=themonth;
}
if(themonth<0&themonth==-1){
themonth=12+themonth;
theyear=theyear-1;
}else{
themonth=themonth;
theyear=theyear;
}
out.println(themonth);
//int today=rightNow.get(Calendar.DAY_OF_MONTH);
//themonth=rightNow.get(Calendar.MONTH);
//int theyear=rightNow.get(Calendar.YEAR);
//rightNow.set(Calendar.DAY_OF_MONTH,today);
rightNow.set(Calendar.MONTH,themonth);
rightNow.set(Calendar.YEAR,theyear);
rightNow.setFirstDayOfWeek(Calendar.SUNDAY);
rightNow.set(Calendar.DAY_OF_MONTH,1);
int firstIndex=rightNow.get(Calendar.DAY_OF_WEEK)-1;
int maxIndex=rightNow.getActualMaximum(Calendar.DAY_OF_MONTH);
for(int g=0;g<maxIndex;g++){
days[firstIndex+g]=String.valueOf(g+1);
}%>
<tr>
<td><a href="jri2.jsp?m=<%=themonth-1%>&y=<%=theyear%>"><<</a></td>
<td><%=theyear%></td>
<td>年</td>
<td><%=themonth+1%></td>
<td>月</td>
<td><a href="jri2.jsp?m=<%=themonth+1%>&y=<%=theyear%>">>></a></td>
<td> </td>
</tr>
<tr>
<td>日</td>
<td>一</td>
<td>二</td>
<td>三</td>
<td>四</td>
<td>五</td>
<td>六</td>
</tr>
<% for(int a=0;a<6;a++) { %>
<tr>
<% for(int b=a*7;b<(a+1)*7;b++) { %>
<td width="15%" height="16" valign="middle" align="center">
<%//if((b-firstIndex+1)==today){%>
<font color="red"><%//=days[b]%></font>
<%//} else {%>
<%=days[b]%><%//}%></td><% } %></tr><% } %>


</table>


</BODY>
</HTML>
jri2.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>

<BODY>
<%
Calendar rightNow = Calendar.getInstance();
//out.println(rightNow.get(Calendar.YEAR));
//out.println(rightNow.get(Calendar.WEEK_OF_YEAR));
out.println(rightNow.get(Calendar.MONTH));
String days[]=new String[42];
for(int k=0;k<42;k++){
days[k]="";
}%>



<table width="200" border="0">
<%//int daycount=rightNow.getActualMaximum(Calendar.DAY_OF_MONTH);
//out.println(daycount);
//out.println(rightNow.get(Calendar.DAY_OF_MONTH));
//rightNow.set(2006,10,15);
//out.println(rightNow.get(Calendar.DAY_OF_WEEK)-1);
String m=request.getParameter("m");
String y=request.getParameter("y");
int themonth=Integer.parseInt(m);
int theyear=Integer.parseInt(y);;
if(themonth>11){
themonth=themonth-12;
theyear=theyear+1;
}else{
themonth=themonth;
}
if(themonth<0&themonth==-1){
themonth=12+themonth;
theyear=theyear-1;
}else{
themonth=themonth;
theyear=theyear;
}

out.println(themonth);
//int today=rightNow.get(Calendar.DAY_OF_MONTH);
//themonth=rightNow.get(Calendar.MONTH);
//int theyear=rightNow.get(Calendar.YEAR);
//rightNow.set(Calendar.DAY_OF_MONTH,today);
rightNow.set(Calendar.MONTH,themonth);
rightNow.set(Calendar.YEAR,theyear);
rightNow.setFirstDayOfWeek(Calendar.SUNDAY);
rightNow.set(Calendar.DAY_OF_MONTH,1);
int firstIndex=rightNow.get(Calendar.DAY_OF_WEEK)-1;
int maxIndex=rightNow.getActualMaximum(Calendar.DAY_OF_MONTH);
for(int g=0;g<maxIndex;g++){
days[firstIndex+g]=String.valueOf(g+1);
}%>
<tr>
<td><a href="jri1.jsp?m=<%=themonth-1%>&y=<%=theyear%>"><<</a></td>
<td><%=theyear%></td>
<td>年</td>
<td><%=themonth+1%></td>
<td>月</td>
<td><a href="jri1.jsp?m=<%=themonth+1%>&y=<%=theyear%>">>></a></td>
<td> </td>
</tr>
<tr>
<td>日</td>
<td>一</td>
<td>二</td>
<td>三</td>
<td>四</td>
<td>五</td>
<td>六</td>
</tr>
<% for(int a=0;a<6;a++) { %>
<tr>
<% for(int b=a*7;b<(a+1)*7;b++) { %>
<td width="15%" height="16" valign="middle" align="center">
<%//if((b-firstIndex+1)==today){%>
<font color="red"><%//=days[b]%></font>
<%//} else {%>
<%=days[b]%><%//}%></td><% } %></tr><% } %>


</table>


</BODY>
</HTML>

梅雪香 2006-11-27
  • 打赏
  • 举报
回复
这种东西太多了,CSDN上就有很多,有几个专门搜集日历的帖子,自己搜索一下吧.

带查询数据库功能的还没发现,但也不难改
java1232 2006-11-27
  • 打赏
  • 举报
回复
我用JSP写了一个,但只能显示当月的,不能显示其它月份或年份
java1232 2006-11-27
  • 打赏
  • 举报
回复
我不懂AJAX,能给个示例吗?
lymzyc 2006-11-25
  • 打赏
  • 举报
回复
可以通过AJAX实现的
li1229363 2006-11-25
  • 打赏
  • 举报
回复
楼主的意思是弄一个完整的程序。这方面的程序我没有写过,但是BLOG里面不是都实现了么?

不过使用JS访问数据库真的好么?奉劝楼主小心,千万不要使用这种方式

如果利用其它语言进行判别的话,有一点麻烦啊~还不如直接就用其他语言实现来的方便呢!
myvicy 2006-11-25
  • 打赏
  • 举报
回复
上网搜索一个,如果愿意动手就自己写一个。

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧