Jump to content

Recommended Posts

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

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.