02. juli 2004 - 16:35Der er
5 kommentarer og 1 løsning
Lave dropdown med år fra 2001 til nuværende år
Hey
Hvis jeg skal have lavet en dropdown, der viser årene fra 2001 og så frem til dette år, hvordan hulen får jeg så bikset det sammen?
I pseudo-kode forestiller jeg mig noget i stil med:
do while aar between "2001" and datepart("yyyy",now()) response.write("<option value="" & aar & "">"" & aar & ""</option>) wend
jeg får ikke årene nogen steder fra, men de bliver bare indtastet manuelt. Så det skal jo helst fungere sådan, at man ikke hver år skal ind og tilføje et nyt år.
Er jeg helt forkert på den, eller har jeg fat i den lange ende (selvom det skulle undre mig hvis jeg havde :) )
Ja, det er jo klart nok at det er en for next løkke, som jeg ikke har haft i tankerne overhovedet...
Men et andet problem jeg er stødt ind i. Jeg skulle gerne have dropdown'en til automatisk at stå på det år som er valgt. Når siden bliver loadet første gang, så bliver aar sat til at være datepart("yyyy",now()). Derudover har jeg en option som hedder "Alle år" og som har værdien "All". Jeg har forsøgt mig med følgende, men den hopper automatisk ned på 2004 ligemeget hvad jeg vælger...
<select name="ddlaar"> <option <%if aar = "All" then response.write("selected")%> value="All">Alle år</option> <%for aar = 2001 to datepart("yyyy",now())%> <option <%if aar = aar then response.write("selected")%> value=<%=aar%>><%=aar%></option> <%next%> </select>
når jeg udskriver aar med en response.write, så for jeg fint det årstal eller "All" frem, men når jeg udskriver sql'en ud, hvor der skal søges på det valgte år, så skriver den året som 2005, lige meget hvad...
Se det fatter jeg ikke en skid af, da jeg ingen steder lægger et år til...
du sammenligner aar = aar og da aar jo altid vil være = aar så vil alle blive markeret som selected men det er så kun den nederste der bliver vist som selected for brugeren
ja, kan også se at jeg fik rodet lidt rundt i "arr" og "aar"... Og i din kode, kan det ikke passe, at der skal stå value=""" & arr & """>" & arr & " istedet for aar?
Nu har jeg fået det rettet ind, så den finder det rigtige år, og skriver det rigtigt ud i sql'en og dropdown. Det eneste jeg mangler, er at få den til at autovælge det år, der nu er valgt. Den måde jeg går det på her virker (selvfølgelig) ikke.
<select name="ddlYear" id="ddlYear" onchange="_postBack('getSaved')" style="width:100"> <option <%if aar = "All" then response.write("selected")%> value="All">Alle år</option> <%for arr = 2001 to datepart("yyyy",now())%> <option <%if aar = arr then response.write("selected")%> value="<%=arr%>"><%=arr%></option> <%next%> </select>
den tager bare den første i dropdown'en som standard, hvilket så er "Alle år".
jo - selvfølgelig skal mine variabler hedde det samme... lille skrivefejl.
Du bliver nødt til at gå ind og udskrive nogle tjeckværdier for at se om de forskellige variabler virkelig stemmer overens. Grunden til fejlen er højst sandsynligt at den ene variabel er en string og den anden en int og så kan de ikke sammenlignes...
Det ser ud til at fungere nu. Den var dog ikke så glad for at lave en cint på "All", hvilket måske er forståligt nok, så jeg workede-around den med if. Slutresultaten for for-løkken kommer altså til at se sådan her ud. Det virker i hvert fald nu, så jeg vil ikke rode mere i det :)
<option <%if not aar = "All" then if cint(aar) = cint(arr) then response.write("selected") end if%> value="<%=arr%>"><%=arr%></option>
Jeg siger tak for hjælpen, der er point på vej.
Synes godt om
Ny brugerNybegynder
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.