Jag håller på att bygga en kalender/bokningsfunktion.
Kalendern är ett faktum, men jag lyckas inte med bokningsfunktionen. Jag vill att man skall kunna klicka på önskat datum och då bli skickad till en sida där man väljer klockslag. Värden som skall skickas vidare till den sidan är: dag (datum), år, månad. Dvs den man klickar på.
Jag bifogar koden (mkt kod.. :OO ) för själva kalendern. Vad jag vill ha hjälp med är hur länken skall se ut...
<?php
class Calendar {
function getDayOfWeek($dd, $mm, $yy){
//returnerar int givet dagens datum
$dateArray = getdate(mktime(0,0,0,$mm,$dd,$yy));
return $dateArray['wday'];
}
function daysInMonth($month,$year) {
$date = getdate(mktime(0,0,0,$month+1,0,$year));
return $date["mday"];
}
function startCalendar($myCal) {
if ((isset($_GET['month']) && isset($_GET['year']))) {
$thecalendar = $this->displayCalendar($_GET['month'],$_GET['year'],$myCal);
}
else {
$now = date('n,Y');
$myDate = explode(",",$now);
$thecalendar = $this->displayCalendar($myDate[0],$myDate[1],$myCal);
}
return $thecalendar;
}
function checkDate($month,$year) {
if (!is_numeric($month) || !is_numeric($year)) {
return $this->myError("Either the month of year was non-numeric.");
}
else if ($month > 12 || $month < 1) {
return $this->myError("The number passed for the month value is not valid.");
}
else if ($year > 2037 || $year < 1970) {
return $this->myError("The number passed for the year value is not valid.");
}
else {
return "passed";
}
}
function next($month,$year) {
if ($month == 12) {
$next['month'] = 1;
$next['year'] = $year + 1;
}
else {
$next['month'] = $month + 1;
$next['year'] = $year;
}
return $next;
}
function last($month,$year) {
if ($month == 1) {
$last['month'] = 12;
$last['year'] = $year - 1;
}
else {
$last['month'] = $month - 1;
$last['year'] = $year;
}
return $last;
}
function monthName($month) {
$monthName = array(1 => "January",
2 => "February",
3 => "March",
4 => "April",
5 => "May",
6 => "June",
7 => "July",
8 => "August",
9 => "September",
10 => "October",
11 => "November",
12 => "December");
return $monthName[$month];
}
function displayCalendar($month,$year,$myCal){
// Kontrollera att det är en giltig månad och år
$check = $this->checkDate($month,$year);
if ($check != "passed") {
return $check;
die();
}
if ($myCal) {
extract($myCal);
}
$monthName = $this->monthName($month);
$next = $this->next($month,$year);
$last = $this->last($month,$year);
$myCalendar = '
<table border="1" cellpadding="0" cellspacing="0" style="font-size: 8pt; font-family: tahoma, arial, sans-serif;">
<tr>
<td colspan="7" align="center">
<table bgcolor="' . $headerBgcolor . '" border="0" cellpadding="1" cellspacing="0" width="100%" style="font-family: tahoma, arial, sans-serif; font-size: 8pt;">
<tr>
<td align="center" width="30">
<a href="' . $_SERVER['PHP_SELF'] . '?month=' . $last['month'] . '&year=' . $last['year'] . '" style="text-decoration: none;"><<</a>
</td>
<td align="center" style="font-size: 10pt; color: ' . $headerColor . '">
' . $monthName . ' ' . $year . '
</td>
<td align="center" width="30">
<a href="' . $_SERVER['PHP_SELF'] . '?month=' . $next['month'] . '&year=' . $next['year'] . '" style="text-decoration: none;">>></a>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td bgcolor="' . $dayBgcolor . '" width="27" align="center"valign="middle" style="color: ' . $dayColor . '">
Sun
</td>
<td bgcolor="' . $dayBgcolor . '" width="27" align="center"valign="middle" style="color: ' . $dayColor . '">
Mon
</td>
<td bgcolor="' . $dayBgcolor . '" width="27" align="center"valign="middle" style="color: ' . $dayColor . '">
Tue
</td>
<td bgcolor="' . $dayBgcolor . '" width="27" align="center"valign="middle" style="color: ' . $dayColor . '">
Wed
</td>
<td bgcolor="' . $dayBgcolor . '" width="27" align="center"valign="middle" style="color: ' . $dayColor . '">
Thu
</td>
<td bgcolor="' . $dayBgcolor . '" width="27" align="center"valign="middle" style="color: ' . $dayColor . '">
Fri
</td>
<td bgcolor="' . $dayBgcolor . '" width="27" align="center"valign="middle" style="color: ' . $dayColor . '">
Sat
</td>
</tr>';
$dom = 1;
//kolla igenom kalender grid'en
for ($r=1; $r<=6; $r++){
for ($c=0; $c<=7; $c++){
if ($c == 0){
$myCalendar .= "
<tr>";
}
else {
if ($c == 1 + $this->getDayOfWeek($dom,$month,$year)){
$myCalendar .= '
<td align="center" valign="middle" bgcolor="' . $cellBgcolor . '" style="color: ' . $cellColor . '">
// Det är väl här som länken ska va då... men...
<a href="dag.php?year=$year&month=$month&day=$dom">' . $dom . '</a>
</td>';
//Om det inte är fler dagar, strunta i att skriva vidare
if ($dom < $this->daysInMonth($month,$year)){
$dom++;
}
else {
$r=7;
}
}
else {
$myCalendar .= '
<td bgcolor="' . $cellBgcolor . '">
</td>';
}
}
if ($c == 7){
$myCalendar .= "
</tr>";
}
}
}
$myCalendar .= "
</table>";
return $myCalendar;
}
function myError($myError) {
$returnError = '<div>
<strong>The following calendar error has occured:</strong><br />
' . $myError . '
</div>';
return $returnError;
}
}
Jag är inte säker på att jag har förstått frågan. Men det är väl något sånt här du är ute efter?
addevent.php?date=$date
Där $date är det datum som man klickar på, alltså det datum som du har skrivit ut
Sen i addevent.php så har du ett formulär där användaren får skriva in de uppgifter som behövs och när användaren skickar formuläret så sätter du in det i databasen. Du behöver ju inte just använda addevent.php, du kan ju kalla den vad du vill.
När jag kör detta så tycks inte variablerna $month, $year och $day få ngt värde utan de sparas som sitt namn i databasen.. ngn som kan se ngt fel i den ovan nämnda länken tillsammans med resten av koden (första inlägget..)
givetvis! tack, ibland är man ju hjärndöd. nu funkar det iaf.
Om jag nu vill att söndag skall komma sist i veckoutskriften (nu kommer den ju först), hur göra?