Jump to content

Recommended Posts

How will I display the calendars of 3 consecutive months on selecting the month and year from drop down menus on submit . Then on clicking the next and previous buttons the respective month calendars should slide. Later i should be able to add events on clicking the date.

 

 

Will be extremely happy if anyone could help me.

 

I want it as seen in http://www.easyphpcalendar.com/v6demo/events/index.php?PHPSESSID=2e191d9b4aeee7350d71b8ab49a1e2ae

 

calendar.php

<?php
$host="localhost"; // Host name
$user=""; // Mysql username
$pass=""; // Mysql password
$db_name=""; // Database name
$tbl_name=""; // Table name

// At line 2 of our calendar.php script, add the MySQL connection information:
$mysql = mysql_connect("$host", "$user", "$pass")or die("cannot connect");
mysql_select_db("$db_name", $mysql) or die(mysql_error());

// Now we need to define "A DAY", which will be used later in the script:
define("ADAY", (60*60*24));

// The rest of the script will stay the same until about line 82

if ((!isset($_POST['month'])) || (!isset($_POST['year']))) {
    $nowArray = getdate();
    $month = $nowArray['mon'];
    $year = $nowArray['year'];
} else {
    $month = $_POST['month'];
    $year = $_POST['year'];
}
$start = mktime(12,0,0,$month,1,$year);
$firstDayArray = getdate($start);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title><?php echo "Calendar: ".$firstDayArray['month']."" . $firstDayArray['year']; ?></title>
<!--<link rel="stylesheet" type="text/css" href="calendar.css"/>-->
</head>
<script type="text/javascript">
function eventWindow(url) {
    event_popupWin = window.open(url, 'event', 'resizable=yes,scrollbars=yes,toolbar=no,width=400,height=400');
    event_popupWin.opener = self;
}
</script>

<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<select name="month">
<?php
$months = Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");

for ($x=1; $x<=count($months); $x++){
    echo "<option value=\"$x\"";
    if ($x == $month){
        echo " selected";
    }
    echo ">".$months[$x-1]."</option>";
}
?>
</select>
<select name="year">
<?php
for ($x=2011; $x<=2050; $x++){
    echo "<option";
    if ($x == $year){
        echo " selected";
    }
    echo ">$x</option>";
}
?>
</select>
<input type="submit" name="submit" value="Go!">
</form>
<br />
<?php
$days = Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
echo "<table border=\"1\"><tr>\n";
foreach ($days as $day) {
    echo "<td style=\"background-color: #CCCCCC; width: 50px\">
          <strong>$day</strong></td>\n";
}

for ($count=0; $count < (6*7); $count++) {
    $dayArray = getdate($start);
    if (($count % 7) == 0) {
        if ($dayArray["mon"] != $month) {
            break;
        } else {
            echo "</tr><tr>\n";
        }
    }
    if ($count < $firstDayArray["wday"] || $dayArray["mon"] != $month) {
        echo "<td> </td>\n";
    } else {
        $chkEvent_sql = "SELECT event_title FROM calendar_events WHERE month(event_start) = '".$month."' AND dayofmonth(event_start) = '".$dayArray["mday"]."' AND year(event_start) = '".$year."' ORDER BY event_start";
       $chkEvent_res = mysql_query($chkEvent_sql, $mysql) or die(mysql_error($mysql));

        if (mysql_num_rows($chkEvent_res) > 0) {
            $event_title = "<br/>";
            while ($ev = mysql_fetch_array($chkEvent_res)) {
                $event_title .= stripslashes($ev["event_title"])."<br/>";
            }
            mysql_free_result($chkEvent_res);
        } else {
            $event_title = "";
        }

        echo "<td ><a href=\"event.php?m=".$month."&d=".$dayArray["mday"]."&y=$year\">".$dayArray["mday"]."</a><br/>".$event_title."</td>\n";
 	unset($event_title);

        $start += ADAY;
    }
}
echo "</tr></table>";
mysql_close($mysql);
?>
</body>
</html>

 

 

event.php

<?php
$host="localhost"; // Host name
$user=""; // Mysql username
$pass=""; // Mysql password
$db_name=""; // Database name
$tbl_name=""; // Table name

$mysql = mysql_connect("$host", "$user", "$pass")or die("cannot connect");
mysql_select_db("$db_name", $mysql) or die(mysql_error());

// Add our new events
if ($_POST){
    $m = $_POST['m'];
    $d = $_POST['d'];
    $y = $_POST['y'];

    // Formatting for SQL datetime (if this is edited, it will NOT work.)
    $event_date = $y."-".$m."-".$d." ".$_POST["event_time_hh"].":".$_POST["event_time_mm"].":00";

    $insEvent_sql = "INSERT INTO calendar_events (event_title,
            event_shortdesc, event_start) VALUES('
            ".$_POST["event_title"]."',
            '".$_POST["event_shortdesc"]."', '$event_date')";
    $insEvent_res = mysql_query($insEvent_sql, $mysql)
            or die(mysql_error($mysql));
} else {
    $m = $_GET['m'];
    $d = $_GET['d'];
    $y = $_GET['y'];
}
// Show the events for this day:
$getEvent_sql = "SELECT event_title, event_shortdesc,
        date_format(event_start, '%l:%i %p') as fmt_date FROM
        calendar_events WHERE month(event_start) = '".$m."'
        AND dayofmonth(event_start) = '".$d."' AND
        year(event_start)= '".$y."' ORDER BY event_start";
$getEvent_res = mysql_query($getEvent_sql, $mysql)
        or die(mysql_error($mysql));

if (mysql_num_rows($getEvent_res) > 0){
    $event_txt = "<ul>";
    while($ev = @mysql_fetch_array($getEvent_res)){
        $event_title = stripslashes($ev["event_title"]);
        $event_shortdesc = stripslashes($ev["event_shortdesc"]);
        $fmt_date = $ev["fmt_date"];
        $event_txt .= "<li><strong>".$fmt_date."</strong>:
                  ".$event_title."<br/>".$event_shortdesc."</li>";
    }
    $event_txt .="</ul>";
    mysql_free_result($getEvent_res);
} else {
    $event_txt = "";
}

mysql_close($mysql);

if ($event_txt != ""){
    echo "<p><strong>Today's Events:</strong></p>
    $event_txt
    <hr/>";
}

// Show form for adding the event:

echo "
<form method=\"post\" name=\"form1\" action=\"".$_SERVER['PHP_SELF']."\">
<p><strong>Add Event:</strong><br/>
Complete the form below then press the submit button when you are done.</p>
<p><strong>Event Title:</strong><br/>
<input type=\"text\" name=\"event_title\"/></p>
<p><strong>Event Date:</strong><br/>
<input type=\"text\" name=\"event_date\" value=\"\"/></p>
<p><strong>Event Description:</strong<br/>
<input type=\"text\" name=\"event_shortdesc\"/></p>
<p><strong>Event Time (hh:mm):</strong><br/>
<select name=\"event_time_hh\">";
for ($x=00; $x<=23; $x++){
    echo "<option value=\"$x\">$x</option>";
}
echo "</select> :
<select name=\"event_time_mm\">
<option value=\"00\">00</option>
<option value=\"15\">15</option>
<option value=\"30\">30</option>
<option value=\"45\">45</option>
</select>
<input type=\"hidden\" name=\"m\" value=\"".$m."\">
<input type=\"hidden\" name=\"d\" value=\"".$d."\">
<input type=\"hidden\" name=\"y\" value=\"".$y."\">
<br/><br/>
<input type=\"submit\" name=\"submit\" value=\"Add Event!\" onclick=\"return validate();\">
</form>";
?>

<a href="calendar.php"><input type="button" value="View Calendar" /></a>

 

Thank You in advance.

Link to comment
https://forums.phpfreaks.com/topic/252096-event-calendar/
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.