kalender probleempje

Status
Niet open voor verdere reacties.

grizzlybeer

Gebruiker
Lid geworden
30 jan 2007
Berichten
58
Hallo allemaal,

Ik was bezig om een kalender te maken maken met behulp van PHP. (Met de kalender zal het mogelijk zijn om data te selecteren voor een boeking). Bij de boeking zal het zowel gaan om aankomst en vertrek datum (evt. ook het aantal personen).

Het probleempje waar ik tegen aanloop is het niet kunnen selecteren van een datum uit de kalender. De dagen van de maand krijg ik wel op het scherm te zien. (Zie hiervoor de printMaand functie)

Hieronder de code:
PHP:
<?php

$year = date('Y');
$month = date('n');
$dag = date('w');
$d = date('d');
$m = date('m');
$h = date('H');
$i = date('i');
$s = date('s');
$j = date('j');

if(isset($year) && isset($month))
{


$next_year = $year+1;
$last_year = $year-1;

$huidige_dag = date("d",mktime(0,0,0,date("m"),date("d"),date("Y"))); 

$maanden = array('','januari','februari','maart','april','juni','juli','augustus','september','oktober','november','december');
$dagen = array('zondag','maandag','dinsdag','woensdag','donderdag','vrijdag','zaterdag');

$nextmonth = date("M",mktime(0,0,0,date("n")+1,date("j"),date("Y")));

$lastmonth = date("M",mktime(0,0,0,date("n")-1,date("j"),date("Y")));

$tomorrow  = date("d",mktime(0, 0, 0, date("m")  , date("d")+1, date("Y")));

$days = date("t",mktime(0,0,0,date("n"),date("j"),date("Y")));

$lastday = mktime(0, 0, 0, $maand, 0, $year);

$aantal = strftime("%d",$lastday);

printMaand($month,$year);

for($i=1; $i<=$days; $i++)
{
echo "$i<br />\n";
}

}

function firstDay($maand, $jaar)
{

$firstday = mktime(0,0,0,$maand,0,$jaar);
$fday = date('w',$firstday);

return $fday;
}

function lastDay($maand,$jaar)
{
$lastday = mktime(0, 0, 0, $maand, 0, $jaar);
$ldays = date("t",mktime(0,0,0,date("n"),date("j"),date("Y")));
return $ldays;
}

function restDays($fdag, $lday) { 
    $rest = ($fdag + $lday) % 7;
    if($rest != 0)
    {
        $rest = 7 - $rest;
    }
    return $rest;
}

function printMaand($maand, $jaar) 
{

	$fday = firstDay($maand, $jaar);
	$lday = lastDay($maand, $jaar);
    
	$rest = restDays($fday, $lday);
	
	$FirstDay = mktime(0, 0, 0, $month, 1, $year);
	$lastday = mktime(0, 0, 0, $month, 0, $year);

	$firstday = date("d-m-Y",mktime(0, 0, 0, date("m"), date("d"), date("Y")));
	$lastday  = date("d-m-Y",mktime(0, 0, 0, date("m"), date("d")+1, date("Y")));
	
	$days = date("t",mktime(0,0,0,date("n"),date("j"),date("Y")));
	
	$lastday = mktime(0, 0, 0, $maand, 0, $jaar);
	
    $vandaag = mktime(0,0,0,date('n',time()),date('d', time()), date('Y', time()));
    $weekdag = array('Ma', 'Di', 'Wo', 'Do', 'Vr', 'Za', 'Zo');
    
    echo "\n".'<table><tr>';
    foreach($weekdag as $dag)
    {
        echo '<td>'.$dag.'</td>';
    }
    echo '</tr><tr>'."\n";
	for($i = 0; $i<($fday + $lday + $rest ); $i++)
    {
        if($i < $fday || $i >= ( $fday + $lday ))
        {
            echo '<td>&nbsp;</td>'."\n";
        }
        else
        {
            if(date('d', $vandaag) == ($i - ($fday - 1)) && date('m') == $maand && date('Y') == $jaar)
            {
                echo '<td bgcolor="#CCCCCC">'. ($i -($fday - 1)) .'</td>'."\n";
            }
            else
            {
                echo '<td>'. ($i -($fday - 1)) .'</td>'."\n";
            }
            if(($i + 1) % 7 == 0)
            {
                echo '</tr><tr>'."\n";
            }
        }
    }
    echo '</tr></table>';
}
	
?>
Alvast bedankt.
 
Laatst bewerkt door een moderator:
Zet er even [ php] tags omheen, dat leest beter.

En wat is nou precies het probleem dan? Het wordt me nog niet helemaal duidelijk...
 
Het probleem is dat ik de kalender wel kan laten zien op het scherm(printMaand), maar nog geen datum kan selecteren ik weet dat je in javascript hiervoor onselect(datepicker etc..) kunt gebruiken.

Mijn vraag is dan ook hoe kan ik op de kalender een (aankomst datum) en vertrek datum kan aanklikken en deze vervolgens kan printen op het scherm. Ook zal ik het aantal dagen van het verblijf moeten uitrekenen zat te denken aan: (vertrek - aankomst). Daarnaast zal je ook naar een ander jaar of maand moeten kunnen gaan om een boeking te kunnen doen.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan