Avatar billede yessir Nybegynder
21. april 2002 - 14:41 Der er 12 kommentarer og
1 løsning

Dato i rullemenu

Hej!

Jeg ville høre om der er nogle som kender en nem og god metode til at få en masse dage(år) vist i en rullemenu(form).

Den skal finde ud af hvilken dag vi har i dag, også måske gå en måned frem.

Jeg vil helst gerne have dato-formatet således: d/m - Y

Håber i kan/vil hjælpe :)
Avatar billede tipsen Nybegynder
21. april 2002 - 14:45 #1
Hvis du vil lave noget som gør det nemt for brugeren at vælge en dato, er det nemmere at indtaste en dato i et foreslået format og derefter formatere/validere den indtastede dato i dit php-script... - jeg hader når man skal vælge en dato vha. 3 eller flere rullegardiner!
Avatar billede yessir Nybegynder
21. april 2002 - 14:50 #2
jamen...gider da ikke skrive datoer for en HEL måned, også opdatere rullemenuen hverdag?

Der må findes en nemmere måde - og i dette tilfælde er det kun EN rullemenu :)
Avatar billede yessir Nybegynder
21. april 2002 - 14:50 #3
kom glad tipsen...
Avatar billede jakoba Nybegynder
21. april 2002 - 15:07 #4
Her er en fra et gammelt spørgsmål:
http://hjem.get2net.dk/Jakob.Aggernaes/temp/exp114361.html

spørgerene ville have denne plus de to næste måneder i selecten, det synes jeg er lovlig mange.

mvh JakobA
Avatar billede yessir Nybegynder
21. april 2002 - 15:21 #5
jacoba >> Er det noget jeg så må få koden på? :)
Avatar billede jakoba Nybegynder
21. april 2002 - 15:29 #6
Ja da, bare gem filerne og brug det :-))
Avatar billede yessir Nybegynder
21. april 2002 - 15:31 #7
danke...
Avatar billede yessir Nybegynder
21. april 2002 - 15:34 #8
damn...mig og min accepter :)

Manglede hvordan laver man lige dage om til tal i dit script? :) (ved godt det er mere kompliseret, men hvis du kan er det COOL)
Avatar billede yessir Nybegynder
21. april 2002 - 15:38 #9
fandt selv et andet på internettet :)
Avatar billede jakoba Nybegynder
21. april 2002 - 15:42 #10
Øh, vil du have points igen?

både php og javascript har indbyggede funktioner til at skifte mellem strenge der er en dato og datoer der blot er et tal. er det det?
Avatar billede yessir Nybegynder
21. april 2002 - 15:55 #11
Du kan hjælpe mig med noget andet for de point...

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--

//-->
</SCRIPT>

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--

var days = [31, 28, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30];
var dayList, monthList, yearList, thisDate, dValue, mValue, yValue;

function initList(){
  thisDate  = new Date();
  dayList  = "<select name=\"day\" size=\"1\">\n";
    dayList  += generateList(1, days[thisDate.getMonth()], thisDate.getDate() );
    dayList  += "</select>\n";
    monthList = "<select name=\"month\" size=\"1\" onChange=\"formatDate(this.form);\">\n"
    monthList += generateList(1, 12, (thisDate.getMonth() + 1) );
    monthList += "</select>\n"
    yearList  = "<select name=\"year\" size=\"1\" onChange=\"formatDate(this.form);\">\n"
    tmpYear=navigator.appName=="Netscape"?thisDate.getYear()+1900:thisDate.getYear();
    yearList  += generateList(1975, tmpYear, tmpYear );
    yearList  += "</select>\n"
}

function generateList( start, stop, curVal ){
  var tmpVar = "";
    for( i = start; i <= stop; i++ ){
      tmpVar += "<option value=\"" + i + "\"" + (i == curVal?" selected":"") + ">" + i + "</option>\n";
    }
  return tmpVar;
}

function formatDate( form ){
    dValue  = form.day[form.day.selectedIndex].value;
    mValue = form.month[form.month.selectedIndex].value;
    yValue  = form.year[form.year.selectedIndex].value;
    form.day.options.length = 0;
    days[1]=(yValue%4==0&&yValue%100!=0)||(yValue%400==0)?29:28;
    for (i = 0; i < days[mValue - 1]; i++) {
      form.day.options[i] = new Option(i + 1, i + 1);
        if( i == dValue ){
          form.day.selectedIndex = i - 1;
        }
    }
    if(form.day.selectedIndex<=0&&dValue!=1){
      form.day.selectedIndex = thisDate.getDate() - 1;
    }
}

function checkDate(){
  dValue  = form.day[form.day.selectedIndex].value;
  mValue = form.month[form.month.selectedIndex].value;
  yValue  = form.year[form.year.selectedIndex].value;
  var todayDate = new Date();
    var newDate  = new Date(yValue, (mValue - 1), dValue, todayDate.getHours(), todayDate.getMinutes(), todayDate.getSeconds() );
    alert( "hey" );
    if( (Date.parse(todayDate) - Date.parse(newDate) ) > 0 ){
      alert( "Valgt dato er mindre enn dagens dato!");
    } else if( (Date.parse(todayDate) - Date.parse(newDate) ) < 0 ){
      alert( "Valgt dato er større enn dagens dato!");
    } else {
      alert( "Dato er den samme!");
    }
    return false;
}
initList();
document.write("<html>\n<body>\n<form name=\"form\" onSubmit=\"return checkDate();\">\n");
document.write(dayList + monthList + yearList);
document.write("<input type=\"submit\"></form></body></html>");
//-->
</SCRIPT>

Hvordan samler jeg de 3 rullemenuer, så de kan gemmes i ET felt i min database? - Havde tænkt på noget array?
Avatar billede yessir Nybegynder
21. april 2002 - 15:56 #12
Men ellers bare behold points...
Avatar billede jakoba Nybegynder
21. april 2002 - 16:34 #13
linien

    var newDate  = new Date(yValue, (mValue - 1), dValue, todayDate.getHours(), todayDate.getMinutes(), todayDate.getSeconds() );

laver et datoodjekt der er den indtastede dato.

værdien i det datoobjekt kan du så lægge ned i et hidden felt i din form hvor php så kan tage det.
fx:
    form.datotal.value = newDate,valueOf();
        // gemmer datoen som et meget stort tal
eller:
    form.datotxt.value = newDate.toLocaleString();
        // gemmer datoen som en streng efter danske normer.

de der hiddenfelter kunne du lave i din form med html kommandoerne
<input type='hidden' name='datotal'>
<input type='hidden' name='datotxt'>

og du kan så genfinde dem i php i variablene $datotal og $datotxt på den .php fil der er formens action= parameter.

mvh JakobA
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