I have been trying this for ages and I just don't know enough about the setcookie function to get it to work properly. Most I can do is keep the selected month, but in doing so, it makes it impossible to actually CHANGE the month using the next/previous month buttons. Can someone please help me with this? Here's the calendar code, it might give a clearer idea of where I should be putting the function.
Apologies for the wall of text.
function draw_calendar($month,$year,$events = array()){
/* draw table */
$calendar = '<table cellpadding="0" cellspacing="0" class="calendar">';
/* table headings */
$headings = array('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
$calendar.= '<tr class="calendar-row"><td class="calendar-day-head">'.implode('</td><td class="calendar-day-head">',$headings).'</td></tr>';
/* days and weeks */
$running_day = date('w',mktime(0,0,0,$month,1,$year));
$days_in_month = date('t',mktime(0,0,0,$month,1,$year));
$days_in_this_week = 1;
$day_counter = 0;
$dates_array = array();
/* row for week one */
$calendar.= '<tr class="calendar-row">';
/* "blank" days*/
for($x = 0; $x < $running_day; $x++):
$calendar.= '<td class="calendar-day-np"> </td>';
$days_in_this_week++;
endfor;
for($list_day = 1; $list_day <= $days_in_month; $list_day++):
$calendar.= '<td ';
$calendar.= 'class="calendar-day"';;
$calendar.= '><div style="height:30px; float: left;">';
/* add in the day number */
if($list_day < 10) {
$list_day = str_pad($list_day, 2, '0', STR_PAD_LEFT);
}
$calendar.= '<div class="day-number"><a ';
if ($list_day == date('d') && $month == date('m') && $year == date('Y')){
$calendar.= 'class="today"';
}
else {
$calendar.= '';
}
//$calendar.='href="#" id="pop">'.$list_day.'</a></div>';
$calendar.='href=upcomingevents.php?m='.$month.'&d='.$list_day.'&y='.$year.'>'.$list_day.'</a></div>';
// <a href="#" id="pop" >PopUp</a>
// <br />
$event_day = $year.'-'.$month.'-'.$list_day;
//Gettingn the event category
$event_category = $_GET['category'];
if(isset($events[$event_day])) {
foreach($events[$event_day]as $event) {
$calendar.= '<div class="event_'.$event['event_category'].'"></div>';
}
}
else {
$calendar.= str_repeat('<p> </p>',2);
}
$calendar.= '</div></td>';
if($running_day == 6):
$calendar.= '</tr>';
if(($day_counter+1) != $days_in_month):
$calendar.= '<tr class="calendar-row">';
endif;
$running_day = -1;
$days_in_this_week = 0;
endif;
$days_in_this_week++; $running_day++; $day_counter++;
endfor;
/* finish the rest of the days in the week */
if($days_in_this_week < 8):
for($x = 1; $x <= (8 - $days_in_this_week); $x++):
$calendar.= '<td class="calendar-day-np"> </td>';
endfor;
endif;
/* final row */
$calendar.= '</tr>';
/* end the table */
$calendar.= '</table>';
/** DEBUG **/
$calendar = str_replace('</td>','</td>'."\n",$calendar);
$calendar = str_replace('</tr>','</tr>'."\n",$calendar);
/*return result */
return $calendar;
}
function random_number() {
srand(time());
return (rand() % 7);
}
/* date settings */
$month = (int) ($_GET['month'] ? $_GET['month'] : date('m'));
$year = (int) ($_GET['year'] ? $_GET['year'] : date('Y'));
$category = ($_GET['event_category']);
/* select month control */
$select_month_control = '<select name="month" id="month">';
for($x = 1; $x <= 12; $x++) {
$select_month_control.= '<option value="'.$x.'"'.($x != $month ? '' : ' selected="selected"').'>'.date('F',mktime(0,0,0,$x,1,$year)).'</option>';
}
$select_month_control.= '</select>';
/* select year control */
$year_range = 7;
$select_year_control = '<select name="year" id="year">';
for($x = ($year-floor($year_range/2)); $x <= ($year+floor($year_range/2)); $x++) {
$select_year_control.= '<option value="'.$x.'"'.($x != $year ? '' : ' selected="selected"').'>'.$x.'</option>';
}
$select_year_control.= '</select>';
/* select category control */
// Array contents
$categories = array('All','Touring','Motorsport','Club');
$cat_selected= (isset($_GET['category'])) ? ((int) $_GET['category']) : 0;
$select_category_control= '<select name="category" id="category">';
foreach ($categories as $key => $val) {
if ($cat_selected==$key) $sel='selected ';
else $sel= '';
$select_category_control.= "<option {$sel}value=\"{$key}\">{$val}</option>";
}
$select_category_control.= '</select>';
if (($_GET["category"]== 0)){
$selected = "All";
}
elseif (($_GET["category"]== 1)){
$selected = "Touring";
}
elseif (($_GET["category"]== 2)){
$selected = "Motorsport";
}
elseif (($_GET["category"]== 3)){
$selected = "Club";
}
/* "next month" control */
$next_month_link = '<a class="butLink" href="?month='.($month != 12 ? $month + 1 : 1).'&year='.($month != 12 ? $year : $year + 1).'&category='.($_GET["category"]).'" class="control">»</a>';
/* "previous month" control */
$previous_month_link = '<a class="butLink" href="?month='.($month != 1 ? $month - 1 : 12).'&year='.($month != 1 ? $year : $year - 1).'&category='.($_GET["category"]).'" class="control">«</a>';
/* bringing the controls together */
$controls3 = '<form method="get">'.$select_month_control.$select_year_control.$select_category_control.' <input class="button" type="submit" name="submit" value="Select Event Type" /></form>';
/* get all events for the given month */
$month = str_pad($month,2,'0', STR_PAD_LEFT);
//$month = str_pad($list_day, 2, '0', STR_PAD_LEFT);
$events = array();
if (($_GET["category"]== 0)){
$query = "SELECT event_name, event_category, DATE_FORMAT(event_date,'%Y-%m-%d') AS event_date FROM events WHERE event_date LIKE '$year-$month%' AND approved='yes'";
} else{
$query = "SELECT event_name, event_category, DATE_FORMAT(event_date,'%Y-%m-%d') AS event_date FROM events WHERE event_category LIKE '$selected' AND event_date LIKE '$year-$month%' AND approved='yes'";
}
$result = mysql_query($query,$mysql) or die('cannot get results!');
while($row = mysql_fetch_assoc($result)) {
$events[$row['event_date']][] = $row;
}
echo '<div id="calHeadBar">';
echo '<div id="prevLink">'.$previous_month_link.'</div>';
echo '<div id="midLink"><p style="font-size: 11px; font-weight: bold; padding:0;">'.$selected.' events for<br /> '.date('F',mktime(0,0,0,$month,1,$year)).' '.$year.'</p></div>';
echo '<div id="nextLink">'.$next_month_link.'</div>';
echo '</div>';
echo '<div style="clear:both;"></div>';
echo '<div id="calBox">';
echo draw_calendar($month,$year,$events);
echo '</div>';
echo '<div id="calHeadBar2">';
echo '<div class="pushMe">';
echo '<div class="box">';
echo '<div style="width: 10px; height: 10px; background:#f83a22; position: relative; margin-right: 5px;"></div><p class="noPadding">Touring</p>';
echo '<div style="width: 10px; height: 10px; background:#7bd148; position: relative; margin-right: 5px;"></div><p class="noPadding">Motorsport</p>';
echo '<div style="width: 10px; height: 10px; background:#89b3d7; position: relative; margin-right: 5px;"></div><p class="noPadding">Club</p>';
echo '</div>';
echo '</div>';
echo '<div style="float:left;">'.$controls3.'</div>';
echo '</div>';
?>