clausowitz Posted August 2, 2011 Share Posted August 2, 2011 Hi All, I have this calendar code which uses php to turn the page to another month. Is there a way to do this with jquery so I don't have to refresh the whole page? All help is extremely welcome. <?php print "<link rel='stylesheet' href='style/cal.css' type='text/css'>"; error_reporting('0'); ini_set('display_errors', '0'); // Gather variables from // user input and break them // down for usage in our script if(!isset($_REQUEST['date'])){ $date = mktime(0, 0, 0, date('m'), date('d'), date('Y')); } else { $date = $_REQUEST['date']; } $day = date('d', $date); $month = date('m', $date); $year = date('Y', $date); // Get the first day of the month $month_start = mktime(0, 0, 0, $month, 1, $year); // Get friendly month name $month_name = date('M', $month_start); // Figure out which day of the week // the month starts on. $month_start_day = date('D', $month_start); switch($month_start_day){ case "Sun": $offset = 0; break; case "Mon": $offset = 1; break; case "Tue": $offset = 2; break; case "Wed": $offset = 3; break; case "Thu": $offset = 4; break; case "Fri": $offset = 5; break; case "Sat": $offset = 6; break; } // determine how many days are in the last month. if($month == 1){ $num_days_last = cal_days_in_month(0, 12, ($year -1)); } else { $num_days_last = cal_days_in_month(0, ($month -1), $year); } // determine how many days are in the current month. $num_days_current = cal_days_in_month(0, $month, $year); // Build an array for the current days // in the month for($i = 1; $i <= $num_days_current; $i++){ $num_days_array[] = $i; } // Build an array for the number of days // in last month for($i = 1; $i <= $num_days_last; $i++){ $num_days_last_array[] = $i; } // If the $offset from the starting day of the // week happens to be Sunday, $offset would be 0, // so don't need an offset correction. if($offset > 0){ $offset_correction = array_slice($num_days_last_array, -$offset, $offset); $new_count = array_merge($offset_correction, $num_days_array); $offset_count = count($offset_correction); } // The else statement is to prevent building the $offset array. else { $offset_count = 0; $new_count = $num_days_array; } // count how many days we have with the two // previous arrays merged together $current_num = count($new_count); // Since we will have 5 HTML table rows (TR) // with 7 table data entries (TD) // we need to fill in 35 TDs // so, we will have to figure out // how many days to appened to the end // of the final array to make it 35 days. if($current_num > 35){ $num_weeks = 6; $outset = (42 - $current_num); } elseif($current_num < 35){ $num_weeks = 5; $outset = (35 - $current_num); } if($current_num == 35){ $num_weeks = 5; $outset = 0; } // Outset Correction for($i = 1; $i <= $outset; $i++){ $new_count[] = $i; } // Now let's "chunk" the $all_days array // into weeks. Each week has 7 days // so we will array_chunk it into 7 days. $weeks = array_chunk($new_count, 7); // Build Previous and Next Links $previous_link = "<a href=\"".$_SERVER['PHP_SELF']."?date="; if($month == 1){ $previous_link .= mktime(0, 0, 0, 12, $day, ($year -1)); } else { $previous_link .= mktime(0, 0, 0, ($month -1), $day, $year); } $previous_link .= "\"><< Prev</a>"; $next_link = "<a href=\"".$_SERVER['PHP_SELF']."?date="; if($month == 12){ $next_link .= mktime(0, 0, 0, 1, $day, ($year + 1)); } else { $next_link .= mktime(0, 0, 0, ($month +1), $day, $year); } $next_link .= "\">Next >></a>"; // Build the heading portion of the calendar table echo "<table class=\"maintable\">\n". "<tr class='headline'>\n". "<td colspan=\"7\">\n". "<table align=\"center\">\n". "<tr class='headline'>\n". "<td colspan=\"2\" width=\"125\" align=\"left\">$previous_link</td>\n". "<td colspan=\"3\" width=\"150\" align=\"center\">$month_name $year</td>\n". "<td colspan=\"2\" width=\"75\" align=\"right\">$next_link</td>\n". "</tr>\n". "</table>\n". "</td>\n". "<tr class='mainrow'>\n". "<td>S</td><td>M</td><td>T</td><td>W</td><td>T</td><td>F</td><td>S</td>\n". "</tr>\n"; // Now we break each key of the array // into a week and create a new table row for each // week with the days of that week in the table data $i = 0; while (list(, $week) = each($weeks)) { echo "<tr class='mainrow'>\n"; while (list(, $d) = each($week)){ if($i < $offset_count){ //$day_link = "<a href=\"".$_SERVER['PHP_SELF']."?date=".mktime(0, 0, 0, $month -1, $d, $year)."\">$d</a>"; echo "<td class=\"nonmonthdays\">$day_link</td>\n"; } if(($i >= $offset_count) && ($i < ($num_weeks * 7) - $outset)){ $datecount=mktime(0, 0, 0, $month -1, $d, $year); $short = ''; $day_link = $d; $day_link = "<A href=\"javascript:popWin('editcalendar.php?ID=$datecount', 450, 570)\">$d</a>"; $query = "SELECT * FROM bl_calender"; $r = mysql_query ($query) or die ("Query error: ".mysql_error()); while($row=mysql_fetch_array($r)) {//Array or records stored in $row if($row['dateclass']==$datecount) { $short = $row['short']; $day_link = "<A href=\"javascript:popWin('editcalendar.php?ID=$datecount', 450, 570)\" title=\"$short\"><FONT style='BACKGROUND-COLOR: yellow'><b>$d </b></font></a>";} } $this_month = date('M'); if($date == mktime(0, 0, 0, $month, $d, $year)){ if($this_month == $month_name) { // only make date red if it is current month echo "<td><A href=\"javascript:popWin('editcalendar.php?ID=$datecount', 450, 570)\" title=\"$short\"><font color='red'><b>$d</b></font></a></td>\n"; } else {echo "<td><A href=\"javascript:popWin('editcalendar.php?ID=$datecount', 450, 570)\" title=\"$short\"><a style='color:#0066FF'>$d</a></td>\n"; } } else { echo "<td class=\"days\">$day_link</td>\n"; } } elseif(($outset > 0)) { if(($i >= ($num_weeks * 7) - $outset)){ $day_link = ""; echo "<td class=\"nonmonthdays\">$day_link</td>\n"; } } $i++; } echo "</tr>\n"; } // Close out your table and that's it! echo "<tr class='headline'><td colspan='7' class='days'> </td></tr>"; echo '</table>'; ?> <SCRIPT LANGUAGE="Javascript"> //<!-- // pop a windoid (Pictures) function popWin(url, w, h) { var madURL = url; var x, y, winStr; x=0; y=0; self.name="opener"; winStr = "height="+h+", width="+w+", screenX="+x+", left="+x+", screenY="+y+", top="+y+", channelmode=0, dependent=0, directories=0, fullscreen=0, location=0, menubar=0, resizable=1, scrollbars=0, status=0, toolbar=0"; lilBaby = window.open(madURL, "_blank", winStr); } //--> </script> Marco Link to comment https://forums.phpfreaks.com/topic/243605-turn-calendar-page-with-jquery/ Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.