|
Posted by caine on 01/30/07 14:19
I have a clickable calendar, which user can select the day that they
want to view the news linking to. My calendar has the clickable event
day, but once the user click it, the day selected could not be parsed
to the mysql queries retrieval. $d has problem. How do I tackle this
$d? The code is a bit long....
<html>
<head>
<title>Calendar</title>
<body>
<form action="cal_new1.php" method="post">
<h3>Please select month or year:</h3>
<select name="month">
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
/
<select name="year">
<option value="2006">2006</option>
<option value="2007">2007</option>
<option value="2008">2008</option>
<option value="2009">2009</option>
<option value="2010">2010</option>
</select>
<input type="submit" value="Display Calendar" />
<?php
$db = mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("bulletin", $db) or die(mysql_error());
//generate event calendar
echo createcal($month, $year);
if (isset($_POST['d']))
{
echo "kjkljlk";
$d = $_POST['d'];
echo "d=".$d;
}
else
{
echo "183439";
$d = date("Y-n-j");
echo "d=".$d;
}
//show news and events
$show = "SELECT * FROM `bul_data` WHERE `DATE` LIKE '$d 22:36:40'";
echo "show=".$show;
$showres = mysql_query($show) or die(mysql_error());
if(mysql_num_rows($showres)>0)
{
while ($showrow = mysql_fetch_assoc($showres))
{
$day = $showrow['DATE'];
$title = $showrow['TITLE'];
$department = $showrow['DEPARTMENT'];
$campus = $showrow['CAMPUS'];
$link = $showrow['LINK'];
echo "<p>$day</p>\n";
echo "<p>$title</p>\n";
echo "<p>$department</p>\n";
echo "<p>$campus</p>\n";
echo "<p><a href=\"$link\">$link</a></p>\n";
}
}
else
{
echo "<p>No news available</p>";
}
function createcal($month, $year)
{
$month = "";
$year = "";
//get year & month from the calendar
if (isset($_POST['month']) && isset($_POST['year']))
{
$month = $_POST['month'];
echo "post_month=".$month;
$year = $_POST['year'];
echo "post_year=".$year;
}
else
{
$components = getdate();
$month = $components['mon'];
$year = $components['year'];
}
echo "month=".$month;
echo "year=".$year;
$output = "<h1>Bulletins for $month / $year</h1>";
//create event days
$newsquery = "SELECT `DATE` FROM `bul_data`";
echo "newsquery=".$newsquery;
$newsres = mysql_query($newsquery) or die(mysql_error());
$eventday = array();
if(mysql_num_rows($newsres)>0)
{
while ($newsrow = mysql_fetch_assoc($newsres))
{
$date = $newsrow['DATE'];
echo "date=".$date;
$eventday[] = $date;
echo "eventday=".$eventday;
}
}
//create table tag opener and day headers
$output .="<table border=\"1\">\n";
$output .="<tr>";
$days = array("SUN","MON","TUE","WED","THU","FRI","SAT");
foreach($days as $day)
{
//create calendar headers
$output .="<th><b>$day</th>\n";
}
$output .="</tr>";
//get 1st day of month
$start = mktime(0,0,0,$month,1,$year);
echo "start=".$start;
$thisdate = getdate($start);
$firstweekday = $thisdate['wday'];
echo "firstweekday=".$firstweekday;
//calculate number of days in the current month
$maxday = date('t', $start);
echo "maxday=".$maxday;
//$next_month = getDate(mktime(0, 0, 0, $month + 1, 1, $year));
//echo "next_month=".$next_month;
$output .="<tr>";
//align first week of month
for($cday = 0; $cday < $firstweekday; $cday++)
{
$output .="<td> </td>\n";
}
//display days of remaining weeks
for($counter = 1; $counter <= $maxday; $counter++)
{
$firstweekday %= 7;
$ripdate = "$year-$month-$counter 22:36:40";
echo "ripdate=".$ripdate;
$d = $year."-".$month."-".$counter;
echo "d=".$d;
//construct new row if 7th column is reached
if($firstweekday == 0)
{
//$firstweekday =0;
$output .="</tr><tr>";
echo "skjsksl";
if (in_array($ripdate, $eventday))
{
echo "2iuwiruo";
$output .="<td class=\"post\"><a href=\"news.php?$year-$month-
$counter\">$counter</a>";
$output .="<input name=\"d\" type=\"text\" type=\"hidden\" value=
\".$d.\"></td>\n";
}
else
{
echo "qoiwwo";
$output .="<td class=\"empty\">$counter</td>\n";
}
}
//not yet reach last column, continue to display
else
{
if (in_array($ripdate, $eventday))
{
echo "sqpoipo";
$output .="<td class=\"post\"><a href=\"news.php?$year-$month-
$counter\">$counter</a>";
$output .= "<input name=\"d\" type=\"text\" type=\"hidden\" value=
\".$d.\"></td>\n";
}
else
{
echo "$%%^^&**@";
$output .="<td class=\"empty\">$counter</td>\n";
}
}
$firstweekday++;
echo "counter=".$counter;
}
//$restday = getdate(mktime(0, 0, 0, $month, $maxday, $year));
//for ($cday = $restday+1; $cday < 7; $cday++)
//{
// $output .="<td> </td>";
//}
$output .="</tr>";
$output .="</table>";
$output .="</form>";
return $output;
}
?>
</body>
</html>
Navigation:
[Reply to this message]
|