Avatar billede jens Nybegynder
29. april 2001 - 17:26 Der er 6 kommentarer og
1 løsning

Mangler dansk pop-up kalender der smider valgt dato ned en form

Hej

Jeg står lige og mangler en pop-up kalender der, når man klikker på datoen, smider datoen ned i et tekstfelt på den underliggende side. Når kalenderen pop\'er op, så skal måneden være den aktuelle.

Man skal selvfølgelig også kunne klikke sig frem i månederne.

Om det kører i ASP eller javascript er ligemeget.

Nogen der kan hjælpe med det ? URL/kode/andet

Hilsen
Jens
Avatar billede Tony Juniormester
29. april 2001 - 17:41 #1
Kan du bruge sådan noget til at arbejde videre med ?

<SCRIPT LANGUAGE=\"JavaScript\">

<!-- Hide

// define variables

var month_names = new Array(\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\");
var days_in_month  = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var this_date = new Date();                                  // get todays date
var this_day = this_date.getDate();                          // returns date within month - range 1-31
var this_month = this_date.getMonth();                        // returns month within year - range 0-11

function makeCalendar(the_month, the_year)
{  first_of_month = new Date(the_year, the_month, 1);        // creates instance of date object for first of month
    day_of_week = first_of_month.getDay();                    // returns day within week - range 0-6
    if  (((the_year % 4 == 0) && (the_year % 100 != 0)) || (the_year % 400 == 0))
    {  days_in_month[1] = 29;                                // it\'s a leap year so change # days in Feb in array
    }
    else
    {  days_in_month[1] = 28;                                // not leap year - future use if multi year calendar built
    }
    document.write(\"<TABLE CALLSPACING=0 CELLPADDING=0>\");    // start building the month table
    document.write(\"<TR BGCOLOR=\'#FFCC99\'><TH COLSPAN=7>\" + month_names[the_month] + \" \" + the_year);        // month and year heading
    document.write(\"<TR BGCOLOR=\'#FF8888\'><TH>S</TH><TH>M</TH><TH>T</TH><TH>W</TH><TH>T</TH><TH>F</TH><TH>S</TH></TR>\");    // day of week heading
    document.write(\"<TR ALIGN=RIGHT>\");
    var column = 0;
    for (i=0; i<day_of_week; i++)                            // skip to day_of_week value for first_of_month
    {  document.write(\"<TD> </TD>\");
        column++;
    }
    for (i=1; i<=days_in_month[the_month]; i++)
    {  if  ((i == this_day)  && (the_month == this_month) && (the_year == this_year))
        {  document.write(\"<TD BGCOLOR=\'#CC0000\'><B>\" + i + \"</B></TD>\");      // highlite todays date
        }
        else
        {  document.write(\"<TD BGCOLOR=\'#33CCFF\'><B>\" + i + \"</B></TD>\");      // no highlite for other dates
        }
        column++;
        if  (column == 7)                                    // start next row of dates for month
        {  document.write(\"</TR><TR ALIGN=RIGHT>\");
            column = 0;
        }
    }
    document.write(\"</TR></TABLE>\");                          // month complete - close table
}
   
function y2K(number)                                          // if year < 2000 javascript gives only 2 digits for year
{ return (number < 1000) ? number + 1900 : number;
}

var this_year = y2K(this_date.getYear());
// -->
                       
</SCRIPT>

Put the following code between the BODY tags.

<SCRIPT LANGUAGE=\"JavaScript\">

<!--

document.write(\"<TABLE BORDER=\'1\'><TR VALIGN=TOP><TD>\");
makeCalendar(0, this_year);                                  // we are passing the month and year to build the calendar
document.write(\"</TD><TD>\");                                  // in JavaScipt the first month is 0
makeCalendar(1, this_year);
document.write(\"</TD><TD>\");
makeCalendar(2, this_year);
document.write(\"</TD><TD>\");
makeCalendar(3, this_year);
document.write(\"</TD></TR><TR VALIGN=TOP><TD>\");
makeCalendar(4, this_year);
document.write(\"</TD><TD>\");
makeCalendar(5, this_year);
document.write(\"</TD><TD>\");
makeCalendar(6, this_year);
document.write(\"</TD><TD>\");
makeCalendar(7, this_year);
document.write(\"</TD></TR><TR VALIGN=TOP><TD>\");
makeCalendar(8, this_year);
document.write(\"</TD><TD>\");
makeCalendar(9, this_year);
document.write(\"</TD><TD>\");
makeCalendar(10, this_year);
document.write(\"</TD><TD>\");
makeCalendar(11, this_year);
document.write(\"</TD></TR></TABLE>\");
document.close();

// -->
                       
</SCRIPT>

Tony Breindal
Avatar billede visionmagic Nybegynder
29. april 2001 - 17:50 #2
Avatar billede jakoba Nybegynder
29. april 2001 - 18:43 #3
Hvilket ad de mange mulige datoformater ønsker du den skal anvede.
i popopvinduet hvor der vælges?
i den tekststreng der skrives i formen?
fx kan idag skrives som:
søndag 29 april 2001 18:55:00
søndag 29 april 2001
      29 april 2001 18:55:00
      29 april 2001
søndag april 29 2001 18:55:00
      april 29 2001 18:55:00
      29-04-2001
      29/04-01
      29/04/2001
... osv osv osv.

Avatar billede jens Nybegynder
29. april 2001 - 19:00 #4
29-04-2001 ville være det bedste.
Avatar billede jakoba Nybegynder
29. april 2001 - 21:23 #5
Avatar billede jens Nybegynder
29. april 2001 - 21:56 #6
jakoba>>Det kan man da kalde service :-)

tusind tak for det jakoba - jeg har lige smidt ekstra 50 point på for din hjælp.

Hilsen
Jens
Avatar billede jakoba Nybegynder
29. april 2001 - 21:58 #7
takker :)
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