ok i'm sorry this code is all such a mess, but i have created a table with html text area forms which acts as a type of calendar for users to mark when they will be doing what on which day. i have monday - sunday shown in my code below but have 4 weeks or 4 sets of monday-sunday's in the calendar in total.
I am wondering if i am able to use a php code to place the date of each month; i.e. 1st-31st into each row/column depending on which month it is at the time?
I'd really appreciate anyones help if they could show me how i can do this and i know it doesnt look a very good way of doing it but i do need to do it this way. Thanks
<table width="100%" border="0" cellspacing="5" cellpadding="5">
<tr>
<th width="11.5%" align="center" valign="middle" bgcolor="#EBEBEB" scope="col">Monday</th>
<th width="11.5%" align="center" valign="middle" bgcolor="#EBEBEB" scope="col">Tuesday</th>
<th width="11.5%" align="center" valign="middle" bgcolor="#EBEBEB" scope="col">Wednesday</th>
<th width="11.5%" align="center" valign="middle" bgcolor="#EBEBEB" scope="col">Thursday</th>
<th width="11.5%" align="center" valign="middle" bgcolor="#EBEBEB" scope="col">Friday</th>
<th width="11.5%" align="center" valign="middle" bgcolor="#EBEBEB" scope="col">Saturday</th>
<th width="11.5%" align="center" valign="middle" bgcolor="#EBEBEB" scope="col">Sunday</th>
</tr>
<tr>
<th width="11.5%" height="55" align="left" valign="middle" bgcolor="#FFFFFF" scope="col"><form action="includes/mod_profile/mod_calendar/includes/change_monday1.php" method="post" id="form1">
<textarea id="monday1" style="width:79px;
margin-top:-31.1px;
text-align:left;
margin-left:-3px;
height: 60px;
position:absolute;
z-index:90;
resize: none;
border: hidden;" textarea name="monday1" data-id="monday1" onkeyup="checkWordCount();"><?php echo $calendar['monday1'] ?></textarea>
<input type="image" src="../PTB1/assets/img/icons/save-edit.png"class="cal-submit" width="12px" height="12px" name="submit" value="submit" id="submit"/>
</form></th>
<th width="11.5%" height="55" align="left" valign="middle" bgcolor="#FFFFFF" scope="col"><form action="includes/mod_profile/mod_calendar/includes/change_tuesday1.php" method="post" id="form1">
<textarea id="bio" style="width:79px;
margin-top:-31.1px;
text-align:left;
margin-left:-3px;
height: 60px;
position:absolute;
z-index:90;
resize: none;
border: hidden;" textarea name="tuesday1" data-id="tuesday1" onkeyup="checkWordCount();"><?php echo htmlspecialchars($calendar['tuesday1']); ?></textarea>
<input type="image" src="../PTB1/assets/img/icons/save-edit.png"class="cal-submit" width="12px" height="12px" name="submit" value="submit" id="submit"/>
</form></th>
<th width="11.5%" height="55" align="left" valign="middle" bgcolor="#FFFFFF" scope="col"><form action="includes/mod_profile/mod_calendar/includes/change_wednesday1.php" method="post" id="form1">
<textarea id="wednesday1" style="width:79px;
margin-top:-31.1px;
text-align:left;
margin-left:-3px;
height: 60px;
position:absolute;
z-index:90;
resize: none;
border: hidden;" textarea name="wednesday1" data-id="wednesday1" onkeyup="checkWordCount();"><?php echo htmlspecialchars($calendar['wednesday1']); ?></textarea>
<input type="image" src="../PTB1/assets/img/icons/save-edit.png"class="cal-submit" width="12px" height="12px" name="submit" value="submit" id="submit"/>
</form></th>
<th width="11.5%" height="55" align="left" valign="middle" bgcolor="#FFFFFF" scope="col"><form action="includes/mod_profile/mod_calendar/includes/change_thursday1.php" method="post" id="form1">
<textarea id="thursday1" style="width:79px;
margin-top:-31.1px;
text-align:left;
margin-left:-3px;
height: 60px;
position:absolute;
z-index:90;
resize: none;
border: hidden;" textarea name="thursday1" data-id="thursday1" onkeyup="checkWordCount();"><?php echo htmlspecialchars($calendar['thursday1']); ?></textarea>
<input type="image" src="../PTB1/assets/img/icons/save-edit.png"class="cal-submit" width="12px" height="12px" name="submit" value="submit" id="submit"/>
</form></th>
<th width="11.5%" height="55" align="left" valign="middle" bgcolor="#FFFFFF" scope="col"><form action="includes/mod_profile/mod_calendar/includes/change_friday1.php" method="post" id="form1">
<textarea id="friday1" style="width:79px;
margin-top:-31.1px;
text-align:left;
margin-left:-3px;
height: 60px;
position:absolute;
z-index:90;
resize: none;
border: hidden;" textarea name="friday1" data-id="friday1" onkeyup="checkWordCount();"><?php echo htmlspecialchars($calendar['friday1']); ?></textarea>
<input type="image" src="../PTB1/assets/img/icons/save-edit.png"class="cal-submit" width="12px" height="12px" name="submit" value="submit" id="submit"/>
</form></th>
<th width="11.5%" height="55" align="left" valign="middle" bgcolor="#FFFFFF" scope="col"><form action="includes/mod_profile/mod_calendar/includes/change_saturday1.php" method="post" id="form1">
<textarea id="saturday1" style="width:79px;
margin-top:-31.1px;
text-align:left;
margin-left:-3px;
height: 60px;
position:absolute;
z-index:90;
resize: none;
border: hidden;" textarea name="saturday1" data-id="saturday1" onkeyup="checkWordCount();"><?php echo htmlspecialchars($calendar['saturday1']); ?></textarea>
<input type="image" src="../PTB1/assets/img/icons/save-edit.png"class="cal-submit" width="12px" height="12px" name="submit" value="submit" id="submit"/>
</form></th>
<th width="11.5%" height="55" align="left" valign="middle" bgcolor="#FFFFFF" scope="col"><form action="includes/mod_profile/mod_calendar/includes/change_sunday1.php" method="post" id="form1">
<textarea id="sunday1" style="width:79px;
margin-top:-31.1px;
text-align:left;
margin-left:-3px;
height: 60px;
position:absolute;
z-index:90;
resize: none;
border: hidden;" textarea name="sunday1" data-id="sunday1" onkeyup="checkWordCount();"><?php echo htmlspecialchars($calendar['sunday1']); ?></textarea>
<input type="image" src="../PTB1/assets/img/icons/save-edit.png"class="cal-submit" width="12px" height="12px" name="submit" value="submit" id="submit"/>
</form></th>
</tr>
<tr>
This will position your dates in the correct columns - just add whatever you need to the inner loop of printCalendar():
<?php
function getCalendarRows($year,$month)
{
$result=array();
$dt=new DateTime(sprintf('%04d-%02d-01',$year,$month));
$weekDay=$dt->format('w'); //Weekday of the first
$nextMonth=$month==12?1:$month+1;
$nextMonthYear=$nextMonth==1?$year+1:$year;
$dt=new DateTime(sprintf('%04d-%02d-01',$nextMonthYear,$nextMonth));
$dt->sub(new DateInterval('P1D')); //last day of the month
$row=array();
$lastDay=$dt->format('j');
//Start the first row with empty columns (false)
for($i=0; $i<$weekDay; $i++)$row[]=false;
for($i=1; $i<=$lastDay; $i++)
{
$row[]=$i;
$weekDay++;
if($weekDay>6)
{
$result[]=$row;
$row=array();
$weekDay=0;
}
}
if($weekDay>0)
{
//Fill up the last row with empty columns
for($i=$weekDay+1; $i<7; $i++) $row[]=false;
$result[]=$row;
}
return $result;
}
function printCalendar($year,$month)
{
$rows=getCalendarRows($year,$month);
echo '
<table>
<tr>
<th>Sunday</th><th>Monday</th><th>Tuesday</th><th>Wednesday</th><th>Thursday</th><th>Friday</th><th>Saturday</th>
</tr>';
foreach($rows as $row)
{
echo '
<tr>';
foreach($row as $weekday=>$date)
{
echo '
<td width="50px" height="50px">'.($date===false?'':$date).'</td>';
//Put whatever else you want in here, you have $year, $month, $date, and $weekday (0 to 6)
//NOTE - if $date===false, this is an empty column
}
echo '
</tr>';
}
echo '
</table>';
}
echo '
<h1>Jan 2013</h1>';
printCalendar(2013,01);
echo '
<h1>Feb 2013</h1>';
printCalendar(2013,02);
echo '
<h1>Mar 2013</h1>';
printCalendar(2013,03);
echo '
<h1>Dec 2013</h1>';
printCalendar(2013,12);
?>
Here it is at phpfiddle: http://phpfiddle.org/main/code/3vf-1z0 (I changed the DateTime constructor calls because sprintf didn't work on phpfiddle)