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 :)
Annonceindlæg fra Infor
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!
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 :)
21. april 2002 - 14:50
#3
kom glad tipsen...
21. april 2002 - 15:21
#5
jacoba >> Er det noget jeg så må få koden på? :)
21. april 2002 - 15:29
#6
Ja da, bare gem filerne og brug det :-))
21. april 2002 - 15:31
#7
danke...
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)
21. april 2002 - 15:38
#9
fandt selv et andet på internettet :)
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?
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?
21. april 2002 - 15:56
#12
Men ellers bare behold points...
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
Vi tilbyder markedets bedste kurser inden for webudvikling