Avatar billede haolan Nybegynder
14. juli 2007 - 13:51 Der er 1 kommentar og
1 løsning

Træk dato ud fra kalender popup

Hej eksperter..

Jeg skal have lavet et system hvor en bruger skal vælge en dato i en formular.

Jeg har set op til flere steder at man kan lave en lille kalender der popper op, hvor man trykker på datoen og derved sætter den ind i et tekstfelt i formatet dd-mm-yyyy.

Jeg har en kalender liggende der måske kan bruges efter lidt tilretning:

<?
    setlocale(LC_ALL,da_DK.ISO8859-1);

    $Year = (isset($_REQUEST['Year']) && $_REQUEST['Year']) ? $_REQUEST['Year'] : strftime("%Y",$timeconf);
    $Month = (isset($_REQUEST['Month']) && $_REQUEST['Month']) ? $_REQUEST['Month'] : strftime("%m",$timeconf);
    $StartDate = "$Year-$Month-01";
    $StartDateTS = strtotime($StartDate);
    $StartDayNum = strftime("%u",$StartDateTS);
    $LastDay = strftime("%e",strtotime("-1 day",strtotime("+1 month",$StartDateTS)));

    $PreviousYear = strftime("%Y",strtotime("-1 month",$StartDateTS));
    $PreviousMonth = strftime("%m",strtotime("-1 month",$StartDateTS));
    $NextYear = strftime("%Y",strtotime("+1 month",$StartDateTS));
    $NextMonth = strftime("%m",strtotime("+1 month",$StartDateTS));

    echo("<table width=\"160\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class='caltext'>\n");
    echo("<tr class='caltop'>\n");
    echo("<td colspan=\"8\"><a href=\"".$_SERVER['SELF']."?Year=$PreviousYear&Month=$PreviousMonth\"><<</a>&nbsp;&nbsp;".strftime("%B %Y",$StartDateTS)."&nbsp;&nbsp;<a href=\"".$_SERVER['SELF']."?Year=$NextYear&Month=$NextMonth\">>></a></td>\n");
    echo("</tr>\n");
    echo("<tr class='calday'>\n");
    echo("<td width=\"20\" height=\"20\">&nbsp;</td>\n");
    echo("<td width=\"20\" style=\"border-bottom: 1px solid black\">M</td>\n");
    echo("<td width=\"20\" style=\"border-bottom: 1px solid black\">T</td>\n");
    echo("<td width=\"20\" style=\"border-bottom: 1px solid black\">O</td>\n");
    echo("<td width=\"20\" style=\"border-bottom: 1px solid black\">T</td>\n");
    echo("<td width=\"20\" style=\"border-bottom: 1px solid black\">F</td>\n");
    echo("<td width=\"20\" style=\"border-bottom: 1px solid black\">L</td>\n");
    echo("<td width=\"20\" style=\"border-bottom: 1px solid black\">S</td>\n");
    echo("</tr>\n");

    // LAV TOMME FELTER HVIS MÅNEDEN STARTER PÅ EN ANDEN DAG END MANDAG
    if ($StartDayNum > 1) {
        echo("<tr>\n");
        echo("<td height=\"20\" align=\"right\" style=\"border-right: 1px solid black; padding-right: 5px\" class='calday'>&nbsp;".date("W",$StartDateTS)."</td>\n");
        $EmptyCells = $StartDayNum - 1;
        for ($I = 0; $I < $EmptyCells; $I++) {
            echo("<td class='caldatetd'>&nbsp;</td>\n");
        }
    }

    for ($Day = 1; $Day <= $LastDay; $Day++) {
        if (date("w",strtotime("$Year-$Month-$Day")) == 1) {
            echo("</tr>\n");
            echo("<tr>\n");
            echo("<td height=\"20\" style=\"border-right: 1px solid black; padding-right: 5px\" class='calday'>".date("W",strtotime("$Year-$Month-$Day"))."</td>\n");
        }
        $roundDay = round(date("d"));
        if($Day == $roundDay) {
            echo("<td><a href=\"index.php?site=941&Year=".$_GET['Year']."&Month=".$_GET['Month']."&d=$Day&m=$Month&y=$Year\" class='caltoday'>$Day</a></td>\n");
        } else {   
            echo("<td><a href=\"index.php?site=941&Year=".$_GET['Year']."&Month=".$_GET['Month']."&d=$Day&m=$Month&y=$Year\" class='caldate'>$Day</a></td>\n");
        }

    }

    echo("</tr>\n");
    echo("</table>\n");
?>
Avatar billede roenving Novice
21. juli 2007 - 08:53 #1
Du kan vel bare sætte en onclick på de tabelceller, der indeholder datoer ?-)
Avatar billede haolan Nybegynder
23. juli 2007 - 19:45 #2
Jep..

Men som vi programmører lærer fra skolen, så handler det om at være doven og ikke opfinde den dybe tallerken to gange.. så jeg fandt mig et færdigt kalenderscript :P

Tilgengæld skal jeg nu bruge en anden form for kalender, hvis det ellers er muligt i en browser.. Jeg poster et nyt spørgsmål om dette..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester