Avatar billede lund_dk Praktikant
16. november 2007 - 23:19 Der er 19 kommentarer og
1 løsning

Array og loop

Jeg har nedenstående som henter nogle informatiner fra en function, med numrene 1-30.

Ligeledes har jeg en streng som hedder

streng = "1, 4, 9, 10, 16"

Hvordan hulen i min loop går jeg ind og tjekker om i matcher et tal i min streng, og hvis den gør, skal denne option have en selected

Nogen der kan hjælpe?



<select name="hobby" multiple="" size="6" style="width: 150px;">
                <%for i = 1 to 30
                %>
               
               
                <option value="<%=i%>" ><%=hobby(i)%></option>
                <%next%>
                </select>
Avatar billede gammelhat Nybegynder
17. november 2007 - 00:46 #1
hvis du laver strengen om til at starte og slutte med punktum, så kan du søge med InStr

streng = ", " & streng & ","

If InStr(streng, ", " & i & ",") > 0 Then
  ' tal fundet
End If
Avatar billede lund_dk Praktikant
19. november 2007 - 16:58 #2
Du har sat komma,ikke punktum?
Avatar billede lund_dk Praktikant
19. november 2007 - 17:00 #3
men uanset om jeg bruger komma eller punktum,kan jeg ikke få det til at virke :(
Avatar billede w13 Novice
19. november 2007 - 17:06 #4
Mellemrummene skal også fjernes. Og Gammelhat mente komma, ikke punktum.
Avatar billede lund_dk Praktikant
19. november 2007 - 17:23 #5
Jeg har lige nu en kode der ser sådan her ud

Den skriver ikke OK ud for 2,3,4, som min streng nu er..

har jeg misforstået noget?


<select name="hobby" multiple="" size="6" style="width: 150px;">
                <%for i = 1 to 30
                streng = rs("hobby")
               
                streng = "," & streng & ","
               
                If InStr(streng, "," & i & ",") > 0 Then
                  str0 = "|OK"
                End If
                %>
               
               
                <option value="<%=i%>"><%=hobby(i)%><%=str0%></option>
                <%next%>
                </select>
Avatar billede w13 Novice
19. november 2007 - 17:28 #6
Prøv lige at udskrive rs("hobby") og aflæs den. Kopier det herind præcis som det står.
Avatar billede lund_dk Praktikant
19. november 2007 - 17:51 #7
Den ser sådan her ud

#2, 3, 4#

uden # selvf. ;)
Avatar billede w13 Novice
19. november 2007 - 18:16 #8
Ja, mellemrummene har vi jo ikke taget højde for.

<select name="hobby" multiple="" size="6" style="width: 150px;">
                <%for i = 1 to 30
                streng = rs("hobby")
               
                streng = "," & streng & ","
               
                If InStr(Replace(streng," ",""), ","&i&",") > 0 Then
                  str0 = "|OK"
                End If
                %>
               
               
                <option value="<%=i%>"><%=hobby(i)%><%=str0%></option>
                <%next%>
</select>
Avatar billede lund_dk Praktikant
19. november 2007 - 18:24 #9
Virker stadig ikke :(

Ingen |OK kommer frem.

jeg udskrev lige
strHvad = InStr(Replace(streng," ",""), ","&i&",")
den nupper bare et 0 ved alle.
Avatar billede w13 Novice
19. november 2007 - 18:25 #10
SElvfølgelig ville det være endnu bedre, hvis de ikke blev gemt i databasen med mellemrummene, så de ikke skal fjernes hver gang.
Avatar billede w13 Novice
19. november 2007 - 18:33 #11
Det lyder underligt. Prøv at se, om den fjerner mellemrummene ordentligt med:

Replace(streng," ","")
Avatar billede w13 Novice
19. november 2007 - 18:35 #12
Du kan evt. også prøve at se, om den kan finde ud af at returnere noget med:

If InStr(streng,i) > 0 Then
Avatar billede lund_dk Praktikant
19. november 2007 - 18:59 #13
Replace(streng," ","") er prøvet, den fjerner fint mellemrummene
Avatar billede w13 Novice
19. november 2007 - 19:00 #14
Hvad med If InStr(streng,i) > 0 Then ?
Avatar billede lund_dk Praktikant
19. november 2007 - 19:14 #15
Jeg er kommet nærmere problemet

sætter jeg i = 2 to 30, altså starter med nr 2, så markerer den ved id 2, men ikke de øvrige.

Så fejlen må være at strengen ikke videreføres ved de øvrige, men kun første loop
Avatar billede lund_dk Praktikant
19. november 2007 - 19:17 #16
Ahh

Nu er fejlen fundet :D

Jeg havde skrevet

for i = 2 to 30
streng = rs("hobby")


Strengen skal self placeres INDEN loopét


streng = rs("hobby")
for i = 2 to 30
Avatar billede w13 Novice
19. november 2007 - 19:27 #17
Fungerer det så nu?
Avatar billede lund_dk Praktikant
19. november 2007 - 19:29 #18
Yes, nu virker det som det skal.

Du må hellere smide et svar som tak for indsatsen :D
Avatar billede w13 Novice
19. november 2007 - 19:32 #19
Okidoke! Men de skal nok deles med Gammelhat så.
Avatar billede w13 Novice
16. januar 2008 - 22:49 #20
Tak for point!
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
Kurser inden for grundlæggende programmering

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