changing color of calendar dates | Member | | Join Date: Jan 2008
Posts: 59
| |
Hi all,
Please anybody help me solve this problem. I am stuck up with this from past 2 weeks. I am developing an application where, when the user selects date from javascript datepicker and enters the comments and clicks the save button then the date and the date will be stored in the mysql database. This is working fine. But my problem is when, after the user had made an entry the date in the calendar for which an entry has made should be changed to green colour. Have anyone has faced similar kind of problem and have got the solution please help me. Here is the code I am using
cal.php - <html>
-
function Show(){
-
-
-
var date_id = document.getElementById("date_id").value;
-
-
-
-
CreateRequest();
-
-
var URL='display.php';
-
-
request.open("POST",URL,true);
-
-
request.onreadystatechange=handleHttpResponse;
-
-
request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
-
-
request.send("id="+escape(date_id));
-
}
-
<body>
-
<script type="text/javascript" src="date-picker.js"></script>
-
<form name="Calender1">
-
<br>
-
<br>
-
-
<a STYLE="text-decoration: none" onmouseover="window.status='Date Picker';return true;" onmouseout="window.status='';return true;" href="javascript:show_calendar('Calender1.date_id')" >
-
-
<IMG title="calendar" align="right" height=21 src="iconCalendar.gif" width=30 border=0></a>
-
<input type="hidden" class="textBox" type="text" readonly name="date_id" id="date_id" size="10">
-
</form>
-
<input type="submit" value="Get it" onclick="Show()">
-
</body>
-
</html>
date-picker.js - var weekend = [0,6];
-
-
var weekendColor = "#e0e0e0";
-
-
var fontface = "Verdana";
-
-
var fontsize = 2;
-
-
-
-
var gNow = new Date();
-
-
var ggWinCal;
-
-
isNav = (navigator.appName.indexOf("Netscape") != -1) ? true : false;
-
-
isIE = (navigator.appName.indexOf("Microsoft") != -1) ? true : false;
-
-
-
-
Calendar.Months = ["January", "February", "March", "April", "May", "June",
-
-
"July", "August", "September", "October", "November", "December"];
-
-
-
-
// Non-Leap year Month days..
-
-
Calendar.DOMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
-
-
// Leap year Month days..
-
-
Calendar.lDOMonth = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
-
-
-
-
function Calendar(p_item, p_WinCal, p_month, p_year, p_format) {
-
-
if ((p_month == null) && (p_year == null)) return;
-
-
-
-
if (p_WinCal == null)
-
-
this.gWinCal = ggWinCal;
-
-
else
-
-
this.gWinCal = p_WinCal;
-
-
-
-
if (p_month == null) {
-
-
this.gMonthName = null;
-
-
this.gMonth = null;
-
-
this.gYearly = true;
-
-
} else {
-
-
this.gMonthName = Calendar.get_month(p_month);
-
-
this.gMonth = new Number(p_month);
-
-
this.gYearly = false;
-
-
}
-
-
-
-
this.gYear = p_year;
-
-
this.gFormat = p_format;
-
-
this.gBGColor = "white";
-
-
this.gFGColor = "black";
-
-
this.gTextColor = "black";
-
-
this.gHeaderColor = "black";
-
-
this.gReturnItem = p_item;
-
-
}
-
-
Code continues...
More code here...
Continued... -
-
Calendar.prototype.show = function() {
-
-
var vCode = "";
-
-
-
-
this.gWinCal.document.open();
-
-
-
-
// Setup the page...
-
-
this.wwrite("<html>");
-
-
this.wwrite("<head><title>Calendar</title>");
-
-
this.wwrite("</head>");
-
-
-
-
this.wwrite("<body " +
-
-
"link=\"" + this.gLinkColor + "\" " +
-
-
"vlink=\"" + this.gLinkColor + "\" " +
-
-
"alink=\"" + this.gLinkColor + "\" " +
-
-
"text=\"" + this.gTextColor + "\">");
-
-
this.wwriteA("<FONT COLOR='RED' FACE='" + fontface + "' SIZE=2><B>");
-
-
this.wwriteA(this.gMonthName + " " + this.gYear);
-
-
this.wwriteA("</B><BR>");
-
-
-
-
// Show navigation buttons
-
-
var prevMMYYYY = Calendar.calc_month_year(this.gMonth, this.gYear, -1);
-
-
var prevMM = prevMMYYYY[0];
-
-
var prevYYYY = prevMMYYYY[1];
-
-
-
-
var nextMMYYYY = Calendar.calc_month_year(this.gMonth, this.gYear, 1);
-
-
var nextMM = nextMMYYYY[0];
-
-
var nextYYYY = nextMMYYYY[1];
-
-
-
-
this.wwrite("<TABLE WIDTH='100%' BORDER=1 CELLSPACING=0 CELLPADDING=0 BGCOLOR='#e0e0e0'><TR bgcolor=e0e0e0><TD ALIGN=center>");
-
-
this.wwrite("<A HREF=\"" +
-
-
"javascript:window.opener.Build(" +
-
-
"'" + this.gReturnItem + "', '" + this.gMonth + "', '" + (parseInt(this.gYear)-1) + "', '" + this.gFormat + "'" +
-
-
");" +
-
-
"\"><<<\/A> </TD><TD ALIGN=center>");
-
-
this.wwrite("<A HREF=\"" +
-
-
"javascript:window.opener.Build(" +
-
-
"'" + this.gReturnItem + "', '" + prevMM + "', '" + prevYYYY + "', '" + this.gFormat + "'" +
-
-
");" +
-
-
"\"><<\/A></TD><TD ALIGN=center>");
-
-
this.wwrite(" <A HREF=\"javascript:none();\"></A> </TD><TD ALIGN=center>");
-
-
this.wwrite(" <A HREF=\"" +
-
-
"javascript:window.opener.Build(" +
-
-
"'" + this.gReturnItem + "', '" + nextMM + "', '" + nextYYYY + "', '" + this.gFormat + "'" +
-
-
");" +
-
-
"\">><\/A> </TD><TD ALIGN=center>");
-
-
this.wwrite(" <A HREF=\"" +
-
-
"javascript:window.opener.Build(" +
-
-
"'" + this.gReturnItem + "', '" + this.gMonth + "', '" + (parseInt(this.gYear)+1) + "', '" + this.gFormat + "'" +
-
-
");" +
-
-
"\">>><\/A> </TD></TR></TABLE><BR>");
-
-
-
-
// Get the complete calendar code for the month..
-
-
vCode = this.getMonthlyCalendarCode();
-
-
this.wwrite(vCode);
-
-
-
-
this.wwrite("</font></body></html>");
-
-
this.gWinCal.document.close();
-
-
}
-
-
-
-
Calendar.prototype.showY = function() {
-
-
var vCode = "";
-
-
var i;
-
-
var vr, vc, vx, vy; // Row, Column, X-coord, Y-coord
-
-
var vxf = 285; // X-Factor
-
-
var vyf = 200; // Y-Factor
-
-
var vxm = 10; // X-margin
-
-
var vym; // Y-margin
-
-
if (isIE) vym = 75;
-
-
else if (isNav) vym = 25;
-
-
-
-
this.gWinCal.document.open();
-
-
-
-
this.wwrite("<html>");
-
-
this.wwrite("<head><title>Calendar</title>");
-
-
this.wwrite("<style type='text/css'>\n<!--");
-
-
for (i=0; i<12; i++) {
-
-
vc = i % 3;
-
-
if (i>=0 && i<= 2) vr = 0;
-
-
if (i>=3 && i<= 5) vr = 1;
-
-
if (i>=6 && i<= 8) vr = 2;
-
-
if (i>=9 && i<= 11) vr = 3;
-
-
-
-
vx = parseInt(vxf * vc) + vxm;
-
-
vy = parseInt(vyf * vr) + vym;
-
-
-
-
this.wwrite(".lclass" + i + " {position:absolute;top:" + vy + ";left:" + vx + ";}");
-
-
}
-
-
this.wwrite("-->\n</style>");
-
-
this.wwrite("</head>");
-
-
-
-
this.wwrite("<body " +
-
-
"link=\"" + this.gLinkColor + "\" " +
-
-
"vlink=\"" + this.gLinkColor + "\" " +
-
-
"alink=\"" + this.gLinkColor + "\" " +
-
-
"text=\"" + this.gTextColor + "\">");
-
-
this.wwrite("<FONT FACE='" + fontface + "' SIZE=2><B>");
-
-
this.wwrite("Year : " + this.gYear);
-
-
this.wwrite("</B><BR>");
-
-
-
-
// Show navigation buttons
-
-
var prevYYYY = parseInt(this.gYear) - 1;
-
-
var nextYYYY = parseInt(this.gYear) + 1;
-
-
-
-
this.wwrite("<TABLE WIDTH='100%' BORDER=1 CELLSPACING=0 CELLPADDING=0 BGCOLOR='#e0e0e0'><TR><TD ALIGN=center>");
-
-
this.wwrite("[<A HREF=\"" +
-
-
"javascript:window.opener.Build(" +
-
-
"'" + this.gReturnItem + "', null, '" + prevYYYY + "', '" + this.gFormat + "'" +
-
-
");" +
-
-
"\" alt='Prev Year'><<<\/A>]</TD><TD ALIGN=center>");
-
-
this.wwrite("[<A HREF=\"javascript:window.print();\">Print</A>]</TD><TD ALIGN=center>");
-
-
this.wwrite("[<A HREF=\"" +
-
-
"javascript:window.opener.Build(" +
-
-
"'" + this.gReturnItem + "', null, '" + nextYYYY + "', '" + this.gFormat + "'" +
-
-
");" +
-
-
"\">>><\/A>]</TD></TR></TABLE><BR>");
-
-
-
-
// Get the complete calendar code for each month..
-
-
var j;
-
-
for (i=11; i>=0; i--) {
-
-
if (isIE)
-
-
this.wwrite("<DIV ID=\"layer" + i + "\" CLASS=\"lclass" + i + "\">");
-
-
else if (isNav)
-
-
this.wwrite("<LAYER ID=\"layer" + i + "\" CLASS=\"lclass" + i + "\">");
-
-
-
-
this.gMonth = i;
-
-
this.gMonthName = Calendar.get_month(this.gMonth);
-
-
vCode = this.getMonthlyCalendarCode();
-
-
this.wwrite(this.gMonthName + "-" + this.gYear + "<BR>");
-
-
this.wwrite(vCode);
-
-
-
-
if (isIE)
-
-
this.wwrite("</DIV>");
-
-
else if (isNav)
-
-
this.wwrite("</LAYER>");
-
-
}
-
-
-
-
this.wwrite("</font><BR></body></html>");
-
-
this.gWinCal.document.close();
-
-
}
-
-
-
-
Calendar.prototype.wwrite = function(wtext) {
-
-
this.gWinCal.document.writeln(wtext);
-
-
}
-
-
-
-
Calendar.prototype.wwriteA = function(wtext) {
-
-
this.gWinCal.document.write(wtext);
-
-
}
-
-
-
-
Calendar.prototype.cal_header = function() {
-
-
var vCode = "";
-
-
-
-
vCode = vCode + "<TR>";
-
-
vCode = vCode + "<TD BGCOLOR='96aac8' WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Sun</B></FONT></TD>";
-
-
vCode = vCode + "<TD BGCOLOR='96aac8' WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Mon</B></FONT></TD>";
-
-
vCode = vCode + "<TD BGCOLOR='96aac8' WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Tue</B></FONT></TD>";
-
-
vCode = vCode + "<TD BGCOLOR='96aac8' WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Wed</B></FONT></TD>";
-
-
vCode = vCode + "<TD BGCOLOR='96aac8' WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Thu</B></FONT></TD>";
-
-
vCode = vCode + "<TD BGCOLOR='96aac8' WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Fri</B></FONT></TD>";
-
-
vCode = vCode + "<TD BGCOLOR='96aac8' WIDTH='16%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Sat</B></FONT></TD>";
-
-
vCode = vCode + "</TR>";
-
-
-
-
return vCode;
-
-
}
-
... -
-
-
Calendar.prototype.cal_data = function() {
-
-
var vDate = new Date();
-
-
vDate.setDate(1);
-
-
vDate.setMonth(this.gMonth);
-
-
vDate.setFullYear(this.gYear);
-
-
-
-
var vFirstDay=vDate.getDay();
-
-
var vDay=1;
-
-
var vLastDay=Calendar.get_daysofmonth(this.gMonth, this.gYear);
-
-
var vOnLastDay=0;
-
-
var vCode = "";
-
-
-
-
/*
-
-
Get day for the 1st of the requested month/year..
-
-
Place as many blank cells before the 1st day of the month as necessary.
-
-
*/
-
-
-
-
vCode = vCode + "<TR>";
-
-
for (i=0; i<vFirstDay; i++) {
-
-
vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(i) + "><FONT SIZE='2' FACE='" + fontface + "'> </FONT></TD>";
-
-
}
-
-
-
-
// Write rest of the 1st week
-
-
for (j=vFirstDay; j<7; j++) {
-
-
vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j) + "><FONT SIZE='2' FACE='" + fontface + "'>" +
-
-
"<A HREF='#' " +
-
-
"onClick=\"self.opener.document." + this.gReturnItem + ".value='" +
-
-
this.format_data(vDay) +
-
-
"';window.close();\">" +
-
-
this.format_day(vDay) +
-
-
"</A>" +
-
-
"</FONT></TD>";
-
-
vDay=vDay + 1;
-
-
}
-
-
vCode = vCode + "</TR>";
-
-
-
-
// Write the rest of the weeks
-
-
for (k=2; k<7; k++) {
-
-
vCode = vCode + "<TR>";
-
-
-
-
for (j=0; j<7; j++) {
-
-
vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j) + "><FONT SIZE='2' FACE='" + fontface + "'>" +
-
-
"<A HREF='#' " +
-
-
"onClick=\"self.opener.document." + this.gReturnItem + ".value='" +
-
-
this.format_data(vDay) +
-
-
"';window.close();\">" +
-
-
this.format_day(vDay) +
-
-
"</A>" +
-
-
"</FONT></TD>";
-
-
vDay=vDay + 1;
-
-
-
-
if (vDay > vLastDay) {
-
-
vOnLastDay = 1;
-
-
break;
-
-
}
-
-
}
-
-
-
-
if (j == 6)
-
-
vCode = vCode + "</TR>";
-
-
if (vOnLastDay == 1)
-
-
break;
-
-
}
-
-
-
-
// Fill up the rest of last week with proper blanks, so that we get proper square blocks
-
-
for (m=1; m<(7-j); m++) {
-
-
if (this.gYearly)
-
-
vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j+m) +
-
-
"><FONT SIZE='2' FACE='" + fontface + "' COLOR='gray'> </FONT></TD>";
-
-
else
-
-
vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j+m) +
-
-
"><FONT SIZE='2' FACE='" + fontface + "' COLOR='gray'>" + m + "</FONT></TD>";
-
-
}
-
-
-
-
return vCode;
-
-
}
-
-
-
-
Calendar.prototype.format_day = function(vday) {
-
-
var vNowDay = gNow.getDate();
-
-
var vNowMonth = gNow.getMonth();
-
-
var vNowYear = gNow.getFullYear();
-
-
-
-
if (vday == vNowDay && this.gMonth == vNowMonth && this.gYear == vNowYear)
-
-
return ("<FONT COLOR=\"RED\"><B>" + vday + "</B></FONT>");
-
-
else
-
-
return (vday);
-
-
}
-
-
-
-
Calendar.prototype.write_weekend_string = function(vday) {
-
-
var i;
-
-
-
-
// Return special formatting for the weekend day.
-
-
for (i=0; i<weekend.length; i++) {
-
-
if (vday == weekend[i])
-
-
return (" BGCOLOR=\"" + weekendColor + "\"");
-
-
}
-
-
-
-
return "";
-
-
}
-
-
-
-
Calendar.prototype.format_data = function(p_day) {
-
-
var vData;
-
-
var vMonth = 1 + this.gMonth;
-
-
vMonth = (vMonth.toString().length < 2) ? "0" + vMonth : vMonth;
-
-
var vMon = Calendar.get_month(this.gMonth).substr(0,3).toUpperCase();
-
-
var vFMon = Calendar.get_month(this.gMonth).toUpperCase();
-
-
var vY4 = new String(this.gYear);
-
-
var vY2 = new String(this.gYear.substr(2,2));
-
-
var vDD = (p_day.toString().length < 2) ? "0" + p_day : p_day;
-
-
-
-
switch (this.gFormat) {
-
-
case "MM\/DD\/YYYY" :
-
-
vData = vMonth + "\/" + vDD + "\/" + vY4;
-
-
break;
-
-
case "MM\/DD\/YY" :
-
-
vData = vMonth + "\/" + vDD + "\/" + vY2;
-
-
break;
-
-
case "MM-DD-YYYY" :
-
-
vData = vMonth + "-" + vDD + "-" + vY4;
-
-
break;
-
-
case "MM-DD-YY" :
-
-
vData = vMonth + "-" + vDD + "-" + vY2;
-
-
break;
-
-
-
-
case "DD\/MON\/YYYY" :
-
-
vData = vDD + "\/" + vMon + "\/" + vY4;
-
-
break;
-
-
case "DD\/MON\/YY" :
-
-
vData = vDD + "\/" + vMon + "\/" + vY2;
-
-
break;
-
-
case "DD-MON-YYYY" :
-
-
vData = vDD + "-" + vMon + "-" + vY4;
-
-
break;
-
-
case "DD-MON-YY" :
-
-
vData = vDD + "-" + vMon + "-" + vY2;
-
-
break;
-
-
-
-
case "DD\/MONTH\/YYYY" :
-
-
vData = vDD + "\/" + vFMon + "\/" + vY4;
-
-
break;
-
-
case "DD\/MONTH\/YY" :
-
-
vData = vDD + "\/" + vFMon + "\/" + vY2;
-
-
break;
-
-
case "DD-MONTH-YYYY" :
-
-
vData = vDD + "-" + vFMon + "-" + vY4;
-
-
break;
-
-
case "DD-MONTH-YY" :
-
-
vData = vDD + "-" + vFMon + "-" + vY2;
-
-
break;
-
-
-
-
case "DD\/MM\/YYYY" :
-
-
vData = vDD + "\/" + vMonth + "\/" + vY4;
-
-
break;
-
-
case "DD\/MM\/YY" :
-
-
vData = vDD + "\/" + vMonth + "\/" + vY2;
-
-
break;
-
-
case "DD-MM-YYYY" :
-
-
vData = vDD + "-" + vMonth + "-" + vY4;
-
-
break;
-
-
case "DD-MM-YY" :
-
-
vData = vDD + "-" + vMonth + "-" + vY2;
-
-
break;
-
-
case "YYYY-MM-DD" :
-
-
vData = vY4 + "-" + vMonth + "-" + vDD;
-
-
break;
-
-
-
-
default :
-
-
// vData = vMonth + "\/" + vDD + "\/" + vY4;
-
-
vData = vY4 +"-"+vMonth + "-" + vDD ;
-
-
}
-
-
-
-
return vData;
-
-
}
-
-
-
-
function Build(p_item, p_month, p_year, p_format) {
-
-
var p_WinCal = ggWinCal;
-
-
gCal = new Calendar(p_item, p_WinCal, p_month, p_year, p_format);
-
-
-
-
// Customize your Calendar here..
-
-
gCal.gBGColor="white";
-
-
gCal.gLinkColor="black";
-
-
gCal.gTextColor="black";
-
-
gCal.gHeaderColor="darkgreen";
-
-
-
-
// Choose appropriate show function
-
-
if (gCal.gYearly) gCal.showY();
-
-
else gCal.show();
-
-
}
-
-
-
-
function show_calendar() {
-
-
/*
-
-
p_month : 0-11 for Jan-Dec; 12 for All Months.
-
-
p_year : 4-digit year
-
-
p_format: Date format (mm/dd/yyyy, dd/mm/yy, ...)
-
-
p_item : Return Item.
-
-
*/
-
-
-
-
p_item = arguments[0];
-
-
if (arguments[1] == null)
-
-
p_month = new String(gNow.getMonth());
-
-
else
-
-
p_month = arguments[1];
-
-
if (arguments[2] == "" || arguments[2] == null)
-
-
p_year = new String(gNow.getFullYear().toString());
-
-
else
-
-
p_year = arguments[2];
-
-
if (arguments[3] == null)
-
-
p_format = "YYYY-MM-DD";
-
-
else
-
-
p_format = arguments[3];
-
-
-
-
vWinCal = window.open("", "Calendar",
-
-
"width=250,height=250,status=no,resizable=no,top=200,left=200");
-
-
vWinCal.opener = self;
-
-
ggWinCal = vWinCal;
-
-
-
-
Build(p_item, p_month, p_year, p_format);
-
-
}
-
-
/*
-
-
Yearly Calendar Code Starts here
-
-
*/
-
-
function show_yearly_calendar(p_item, p_year, p_format) {
-
-
// Load the defaults..
-
-
if (p_year == null || p_year == "")
-
-
p_year = new String(gNow.getFullYear().toString());
-
-
if (p_format == null || p_format == "")
-
-
p_format = "YYYY-MM-DD";
-
-
-
-
var vWinCal = window.open("", "Calendar", "scrollbars=yes");
-
-
vWinCal.opener = self;
-
-
ggWinCal = vWinCal;
-
-
-
-
Build(p_item, null, p_year, p_format);
-
-
}
With regards,
kumuda
|  | Expert | | Join Date: Mar 2007
Posts: 10,611
| | | re: changing color of calendar dates
@all readers: please press the 'reply' link to be able to read the original post.
It contains the correct tags (both html and forum tags) but for some buggy
reasons the forum software can't handle it. On behalf of the forum software I
apologize for the inconvenience.
kind regards,
Jos (mod)
|  | Moderator | | Join Date: Jul 2006 Location: The Netherlands
Posts: 4,139
| | | re: changing color of calendar dates Quote:
Originally Posted by JosAH @all readers: please press the 'reply' link to be able to read the original post.
It contains the correct tags (both html and forum tags) but for some buggy
reasons the forum software can't handle it. On behalf of the forum software I
apologize for the inconvenience.
kind regards,
Jos (mod) 500 lines of code plus 500 blank lines is a lot of code!
Ronald
| | Member | | Join Date: Jan 2008
Posts: 59
| | | re: changing color of calendar dates
Hi all, now I have removed the blank lines I hope you can view the content. if not please click reply button to view
| | Member | | Join Date: Oct 2007
Posts: 110
| | | re: changing color of calendar dates
I took a quick look at your code, but I think posting that much code is WAY too much for anybody to go through, particularly without comments. I've been guilty of the same recently, and it was suggested to me not to include so much code that a reader has to scroll to view it.
However, I did a search for "id'"s and "class"es, and I don't see anywhere where you set the id or class of an element where the date has a result. It seems you only have one id and one class for data. How are you setting the date to green if their is an entry?
I have also done a search for "select", and it seems you don't include your mysql query in your code.
So, those are the two things that are needed as far as I can tell. Your query looks for the result, if their is a result, then you set the id or class of the resulting date to go green.
You would probably also want to create an ajax update for when the user enters new data. To do that, I use jquery, and put the date in the id, then refresh the data on that id.
I hope that helps.
Pete
|  | | | | /bytes/about
We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights.
Get the best answers to your questions from over 226,272 network members.
|