postbil.com Posted February 3, 2011 Share Posted February 3, 2011 Hey Phpfreaks. I had a littel problem with my calendar script. I want i that way, then I click at the current day it reload the script (But only the calendar function) and remember which day there is selected. The problem is then I reload the script it just display ”0”. Can somebody please help me.. Postbil.com <?php function calendar (){ // selecct the current timezone date_default_timezone_set('Europe/Paris'); // accept incoming URL parameter $timestamp = (isset($_GET['t'])) ? $_GET['t'] : time(); $tsDM = (isset($_GET['tsDM'])); // Here I get the infomation about witch day the user had selected // determine useful aspects of the requested month list($month, $day, $year) = explode('/', date('m/d/Y', $timestamp)); $first_day_of_month = date('w', mktime(0, 0, 0, $month, 7, $year)); $total_days = date('t', $timestamp); // output table header echo '<h8>'; echo '<table id="calendar">'; echo '<tr id="calendar_header"><th colspan="7">'; echo '<a href="' . htmlspecialchars($_SERVER['PHP_SELF']) . '?t=' . strtotime('-1 month', $timestamp) . '"><</a> '; echo date('F', $timestamp) . ' ' . $year; echo ' <a href="' . htmlspecialchars($_SERVER['PHP_SELF']) . '?t=' . strtotime('+1 month', $timestamp) . '">></a>'; echo '</th></tr>'; echo '<tr><th>Man</th><th>Tir</th><th>Ons</th><th>Tor</th><th>Fre</th>' . '<th>Lør</th><th>Søn</th></tr>'; // output date cells // here the loop started, to show the current day. $current = 1; while ($current <= $total_days){ echo '<tr class="calendar_dates">'; for ($i = 0; $i < 7; $i++){ if (($current == 1 && $i < $first_day_of_month) || ($current > $total_days)){ echo '<td class="empty"> </td>'; continue; } // find the correct timestamp at day. $tsDMY = urlencode(mktime(0, 0, 0, $month, $current, $year)); // Here we save a timestamp with infomation about Month, Day, Year $tsDM = urlencode(mktime(0, 0, 0, $month, $current, 0)); // Here we save a timestamp with infomation about Month, Day // Print the actual date echo "<td>"; // here I make a link. // I use the "' . htmlspecialchars($_SERVER['PHP_SELF']) . '?tsDM=$tsDM" function before i want my page page only to reload the calender function, and remember witch day the user had selected. The $tsDM have to be sendt echo '<centerI><a href="' . htmlspecialchars($_SERVER['PHP_SELF']) . '?tsDM=$tsDM">' . $current . $tsDM . '</a></center>'; echo "</td>"; $current++; } echo '</tr>'; } echo '</table>'; echo '</h8>'; echo $tsDM; // Here I print the selected timestamp. } Quote Link to comment Share on other sites More sharing options...
marcelobm Posted February 3, 2011 Share Posted February 3, 2011 Hi there, one of your problems is that here $tsDM = (isset($_GET['tsDM'])); you are assigning the selected day to the local variable tsDM and then here $tsDM = urlencode(mktime(0, 0, 0, $month, $current, 0)); you are replacing that value every time in the loop. I think that this will help you, first in echo '<centerI><a href="' . htmlspecialchars($_SERVER['PHP_SELF']) . '?tsDM=$tsDM">' . $current . $tsDM . '</a></center>'; The '?tsDM=$tsDM">' is in single quotes so the value of $tsDM wont be printed out, instead do it like this echo '<centerI><a href="' . htmlspecialchars($_SERVER['PHP_SELF']) . '?tsDM='.$tsDM.'">' . $current . $tsDM . '</a></center>'; and at the end when you echo the $tsDM, if you want to print the day selected you can do it by echo $_GET['tsDM']. Hope this will help you. Quote Link to comment Share on other sites More sharing options...
postbil.com Posted February 3, 2011 Author Share Posted February 3, 2011 Yes yes.. It works.. That so nice.. Thanks a lot!! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.