Ska försöka göra en dropdown meny med dagens datum samt påföljande 14 dagar. Nån som har en aning om hur jag löser det?
Dropdown med datum
13 svar · 469 visningar · startad av calvin
HEJ!
Du vill göra detta i javascript? Det är inte alldeles enkelt, titta på http://www.webforum.nu/showthread.php?s=&forumid=24&threadid=95683 för lite vägledning.
OM du inte har en speciell anledning till att ha javascript, ger jag dig rådet att använda vb och DateAdd istället, http://www.devguru.com/Technologies/vbscript/quickref/dateadd.html.
Oj, det lät svårt...
Tack ändå för svaret.
Hade hoppats på att det skulle vara lite enklare. Har i uppgift att gör en möjlighet för besökaren att boka en tid för ett möte. Han ska då få en lista med dagens datum samt 14 följande dagarna att välja på. Finns det nått annat "enkelt" sätt att göra detta på?
HEJ!
Enkelt? Allt är enkelt när man kan det!
Gör såhär:
Gör en loop med 1 till 20, i den skapar du respektive option i din select med hjälp av dateadd(D,[loop],Date)
http://www.devguru.com/Technologies/vbscript/quickref/date.html
Detta värde skickar du sedan iväg till din spara-sida.
Enkelt? Kanske inte nu, men om två timmar :)!
Hade jag användt js istället? Nej, inte när det ej ska uppdateras andra dd-rutor, eller när veckor är inblandade. (Mitt länktips)
Jag tror att jag blivit lite missförstod, jag har nog inte uttryckt mig tillräckligt bra.
Har iallafall hittat en lösning, som gör en datum array:
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
datum = new Date()
sekund = datum.getTime()
dag = datum.getDay()
nastaDatum = new Date()
nastaDatum.setTime(datum.getTime() + (1000*60*60*24))
lista = new Array()
dygn = 0
for (i=0;i<14;i++)
{
lista = new Date()
lista.setTime(sekund + dygn)
dygn = dygn + (1000*60*60*24)
}
for (i=0;i<lista.length;i++)
{
document.write("<OPTION>"+lista*.getDate()+"/"+(lista*.getMonth()+1)+"<BR>")
}
//-->
</SCRIPT>
Funkade precis så som jag ville.****
HEJ!
Där ser du, det var inte så svårt :e!
Man löser problemet själv...
Jodå, jag förstod dig, men jag hade valt vb eftersom jag är 100% säker på att jag får ihop den loop som behövs.
En sak saknar du, nämligen år, lägg till lista*.getYear() så är det komplett.
För man ska väl kunna veta vilket år mötet är bokat?
Om inte, lär du ändå behöva det för databasens skull, att dela datum i månad-dag är dumt!*
Fick problem igen... Löste uppgiften med en array som listar datumen, men när jag försöker göra om det här till en funktion och få dropdownen att lista värdena så fungerar det inte.
Här är koden som jag har:
<script language="JavaScript" type="text/javascript">
<!--
datum = new Date()
sekund = datum.getTime()
dag = datum.getDay()
nastaDatum = new Date()
nastaDatum.setTime(datum.getTime() + (1000*60*60*24))
lista = new Array()
dygn = 0
for (i=0;i<14;i++)
{
lista = new Date()
lista.setTime(sekund + dygn)
dygn = dygn + (1000*60*60*24)
}
for (i=0;i<lista.length;i++)
{
document.write("<OPTION>"+lista*.getDate()+"/"+(lista*.getMonth()+1)+"<BR>")
}
//-->
</script>****
:)
<SCRIPT TYPE="text/javascript">
function listDates() {
var datum = new Date();
var sekund = datum.getTime();
var dag = datum.getDay();
var nastaDatum = new Date();
nastaDatum.setTime(datum.getTime() + (1000*60*60*24));
var lista = new Array();
var dygn = 0;
for (var i=0;i<14;i++)
{
lista[i] = new Date();
lista[i].setTime(sekund + dygn);
dygn = dygn + (1000*60*60*24);
}
for (var i=0;i<lista.length;i++)
{
document.write("<OPTION>"+lista[i].getDate()+"/"+(lista[i].getMonth()+1)+"<BR>");
}
}
</SCRIPT>
<form>
<select>
<script type="text/javascript">listDates()</script>
</select>
</form>
Tack, det funkade men jag fick snabbt ännu ett problem. Jag får inte mitt script att spara värdet från datum-dropdownen. Jag har försökt namnge dropdownen och sedan försökt presentera valet man gjort i en alert-ruta. Men får det inte att funka...
Princip:
<form onsubmit="var obj = this.elements['select']; alert(obj.options[obj.selectedIndex].text); return false">
<select name="select">
<script type="text/javascript">listDates()</script>
</select>
<input type="submit">
</form>
:)
Lysande Peter! En sista grej så lovar jag att vara tyst sen...
Om jag vill kunna använda datumet i en annan form av presentation. t.ex. onsubmit så vil jag att en function ska presentera datumet i ett textfält, hur gör jag då?
:)
function showDate(fObj) {
var sel = fObj.elements["select"],
selVal = sel.options[sel.selectedIndex].text;
fObj.elements["dateField"].value = selVal;
alert(selVal);
return false;
}
<form onsubmit="return showDate(this)">
<select name="select">
<script type="text/javascript">listDates()</script>
</select>
<input type="text" name="dateField">
<input type="submit">
</form>
Tack Peter! Nu funkar allt som jag vill!
:bire