webForumDet fria alternativet

Dropdown med datum

13 svar · 469 visningar · startad av calvin

calvinMedlem sedan aug. 200319 inlägg
#1

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?

J.N.Medlem sedan apr. 20031 660 inlägg
#2

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.

calvinMedlem sedan aug. 200319 inlägg
#3

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å?

J.N.Medlem sedan apr. 20031 660 inlägg
#4

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)

calvinMedlem sedan aug. 200319 inlägg
#5

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.****

J.N.Medlem sedan apr. 20031 660 inlägg
#6

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!*

calvinMedlem sedan aug. 200319 inlägg
#7

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>****

Peter SMedlem sedan dec. 20025 484 inlägg
#8

:)

<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>
calvinMedlem sedan aug. 200319 inlägg
#9

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...

Peter SMedlem sedan dec. 20025 484 inlägg
#10

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>

:)

calvinMedlem sedan aug. 200319 inlägg
#11

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å?

Peter SMedlem sedan dec. 20025 484 inlägg
#12

:)

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>
calvinMedlem sedan aug. 200319 inlägg
#13

Tack Peter! Nu funkar allt som jag vill!

Peter SMedlem sedan dec. 20025 484 inlägg
#14

:bire

Genererad på 373 ms · cache AV · v20260730165559-full.f96bc7eb