Jump to content

Automatic refresh calendar page


dantoni

Recommended Posts

Hi All,

 

I've built agenda calendar. What I want to ask is when there are 2 different user (user A and B ) access the same month at same year, and after that one of the user (user A) input agenda, other user ( user B ) must manually refresh the calendar to be able to see the agenda that had been inserted.

 

Is it possible to refresh automatically after the agenda inserted ?

 

Here's the code

<?php
session_start();
include "con.php";
if (isset($_SESSION['user']))
{
$sql="";
echo"<html>";
echo"<head>";
echo"<title>Agenda</title>";
echo"</head>";
echo"<body>";
$monthNames = Array("January","February","March","April","May","June","July","August","September","October","November", "December");

if (!isset($_REQUEST["month"])) $_REQUEST["month"] = date("n");
if (!isset($_REQUEST["year"])) $_REQUEST["year"] = date("Y");

$cMonth = $_REQUEST["month"];
$cYear = $_REQUEST["year"];
$prev_year = $cYear;
$next_year = $cYear;
$prev_month = $cMonth-1;
$next_month = $cMonth+1;
if ($prev_month == 0)
{
 $prev_month = 12;
 $prev_year = $cYear - 1;
}
if ($next_month == 13)
{
 $next_month = 1;
 $next_year = $cYear + 1;
}

echo"<table width=200>";
echo"<tr align=center>";
echo"<td bgcolor=#999999 style=color:#FFFFFF>";
echo"<table width=100% border=0 cellspacing=0 cellpadding=0>";
echo"<tr>";
echo"<td width=50% align=left><a href=$_SERVER[php_SELF]?month=". $prev_month . "&year=" . $prev_year." style=color:#FFFFFF>Previous</a></td>";
echo"<td width=50% align=right><a href=$_SERVER[php_SELF]?month=". $next_month . "&year=" . $next_year." style=color:#FFFFFF>Next</a></td>";
echo"</tr>";
echo"</table>";
echo"</td>";
echo"</tr>";
echo"</table>";
echo"<tr>";
echo"<td align=center>";
echo"<table width=100% border=1 cellpadding=2 cellspacing=2>";
echo"<tr align=center>";
echo"<td colspan=7 bgcolor=#999999 style=color:#FFFFFF><strong>".$monthNames[$cMonth-1]." ".$cYear."</strong></td>";
echo"</tr>";
echo"<tr>";
echo"<td align=center bgcolor=#999999 style=color:#FFFFFF><strong>Sun</strong></td>";
echo"<td align=center bgcolor=#999999 style=color:#FFFFFF><strong>Mon</strong></td>";
echo"<td align=center bgcolor=#999999 style=color:#FFFFFF><strong>Tue</strong></td>";
echo"<td align=center bgcolor=#999999 style=color:#FFFFFF><strong>Wed</strong></td>";
echo"<td align=center bgcolor=#999999 style=color:#FFFFFF><strong>Thu</strong></td>";
echo"<td align=center bgcolor=#999999 style=color:#FFFFFF><strong>Fri</strong></td>";
echo"<td align=center bgcolor=#999999 style=color:#FFFFFF><strong>Sat</strong></td>";
echo"</tr>";

$timestamp = mktime(0,0,0,$cMonth,1,$cYear);
$maxday = date("t",$timestamp);
$thismonth = getdate ($timestamp);
$startday = $thismonth['wday'];
for ($i=0; $i<($maxday+$startday); $i++)
{

//echo "<a href=2.php>".$i."</a><br>";
if(($i % 7) == 0 )
{
echo "";
 }
if($i < $startday)
{
echo "<td></td>\n";
 }else
{
$sql = "select * from agenda where date='".($i - $startday + 1).'-'.$cMonth.'-'.$cYear."'";
$hs = mysql_query($sql);
$jmlAcara = mysql_num_rows($hs);
echo "<td align='center' valign='middle' height='20px'".($jmlAcara > 0 ? " bgcolor='yellow'" : '').">";
echo "<a href=2.php?tgl=".urlencode($i - $startday + 1)."&month=".urlencode($monthNames[$cMonth-1])." onclick=\"window.open(this.href,'window','width=640,height=480,resizable,scrollbars,toolbar,menubar') ;return false;\">".($i - $startday + 1)."</a><br>";
echo "</td>\n";
}
if(($i % 7) == 6 )
{
echo "</tr>\n";
}
}
echo"</table>";
echo"<br><br><center><a href=logout.php>Logout</a>";

}else
{
echo "<script>alert('Please login first');javascript:window.location.href='index.php';</script>";
}
?>

 

Thanks before,

Link to comment
https://forums.phpfreaks.com/topic/274430-automatic-refresh-calendar-page/
Share on other sites

Hi Scootash,

 

I've tried a few ajax way, but it still didn't work. For the first time, it works but after we click previous / next button, it comeback must refresh manually again.

Here's the code.

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
   $(document).ready(function() {
   $.ajaxSetup({ cache: false }); // This part addresses an IE bug. without it, IE will only load the first number and will never
   setInterval(function() {
   $('#result').load('3.php');
   }, 1000); // the "3000" here refers to the time to refresh the div. it is in milliseconds.
   });
</script>
<?php
$monthNames = Array("January","February","March","April","May","June","July","August","September","October","November", "December");
   if (!isset($_REQUEST["month"])) $_REQUEST["month"] = date("n");
   if (!isset($_REQUEST["year"])) $_REQUEST["year"] = date("Y");
   $cMonth = $_REQUEST["month"];
   $cYear = $_REQUEST["year"];
   $prev_year = $cYear;
   $next_year = $cYear;
   $prev_month = $cMonth-1;
   $next_month = $cMonth+1;
   if ($prev_month == 0 )
{
 $prev_month = 12;
 $prev_year = $cYear - 1;
   }
   if ($next_month == 13)
{
 $next_month = 1;
 $next_year = $cYear + 1;
   }
?>
<table width="200">
   <tr align="center">
   <td bgcolor="#999999" style="color:#FFFFFF">
   <table width="100%" border="0" cellspacing="0" cellpadding="0">
   <tr>
   <td width="50%" align="left"><a href="<?php echo $_SERVER["PHP_SELF"] . "?month=". $prev_month . "&year=" . $prev_year; ?>" style="color:#FFFFFF">Previous</a></td>
   <td width="50%" align="right"><a href="<?php echo $_SERVER["PHP_SELF"] . "?month=". $next_month . "&year=" . $next_year; ?>" style="color:#FFFFFF">Next</a></td>
   </tr>
   </table>
   </td>
   </tr>
</table>
<table width="100%" border="1" cellpadding="2" cellspacing="2">
<tr align="center">
<td colspan="7" bgcolor="#999999" style="color:#FFFFFF"><strong><?php echo $monthNames[$cMonth-1].' '.$cYear; ?></strong></td>
</tr>
<tr>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>S</strong></td>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>M</strong></td>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>T</strong></td>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>W</strong></td>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>T</strong></td>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>F</strong></td>
<td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>S</strong></td>
</tr>
</table>
<div id="result">

 

<?php
include "connection.php";
echo"<table width=100% border=1 cellpadding=2 cellspacing=2>";
echo "
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
";
//echo "<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td>";
$month=$_GET["month"];
$year=$_GET["year"];
$timestamp = mktime(0,0,0,$month,1,$year);
$maxday = date("t",$timestamp);
$thismonth = getdate ($timestamp);
$startday = $thismonth['wday'];
for ($i=0; $i<($maxday+$startday); $i++)
{
//echo "($maxday+$startday)";
//echo "<a href=2.php>".$i."</a><br>";
if(($i % 7) == 0 )
{
 echo "";
   }
if($i < $startday)
{
 echo "<td></td>\n";
   }else
{
 $sql = "select * from agenda where date='".($i - $startday + 1).'-'.$cMonth.'-'.$cYear."'";
 $hs = mysql_query($sql);
 $jmlAcara = mysql_num_rows($hs);
 echo "<td align='center' valign='middle' height='20px'".($jmlAcara > 0 ? " bgcolor='yellow'" : '').">";
 echo "<a href=2.php?tgl=".urlencode($i - $startday + 1)."&month=".urlencode($monthNames[$cMonth-1])." onclick=\"window.open(this.href,'window','width=640,height=480,resizable,scrollbars,toolbar,menubar') ;return false;\">".($i - $startday + 1)."</a><br>";
 echo "</td>";
 //echo "$cMonth";
}if(($i % 7) == 6 )
{
 echo "</tr>";
}
}
?>
</table>

Archived

This topic is now archived and is closed to further replies.

×
×
  • 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.