/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Arrays i select
Fra : jensop


Dato : 04-06-03 12:32

Hej jeg har følgende kode, som jeg ikke lige kan tænke klart nok til at
løse, og håbede at der måske sad een af jer, der havde en god idé:

gl7 er en array af en eller flere af de nedenstående navne, og jeg ville
gerne om de alle kunne blive forvalgt

her er min kode

Function selValue(vistList)
Dim selectmarker
If (gl7 = vistlist) Then
selectmarker = " selected=""SELECTED"""
Else
selectmarker = ""
End If
selValue = "<option multiple" & selectmarker & ">" & vistList &
"</option>"
End Function

' ...

<select name="nyarmylist" size="17">
<%= selValue("Ukendt") %>
<%= selValue("Bretonnians") %>
<%= selValue("Chaos_Mortal") %>
<%= selValue("Chaos_Beast") %>
<%= selValue("Chaos_Daemons") %>
<%= selValue("Chaos_Dwarfs") %>
<%= selValue("Dark_Elves") %>
<%= selValue("Dogs_of_War") %>
<%= selValue("Dwarfs") %>
<%= selValue("Empire") %>
<%= selValue("High_Elves") %>
<%= selValue("Lizardmen") %>
<%= selValue("Orcs_and_Goblins") %>
<%= selValue("Skaven") %>
<%= selValue("Tomb_Kings") %>
<%= selValue("Vampire_Counts") %>
<%= selValue("Wood_Elves") %>
</select>


--
/Jens Ole Pedersen




 
 
Jens Gyldenkærne Cla~ (04-06-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 04-06-03 13:24

jensop skrev:

> gl7 er en array af en eller flere af de nedenstående navne, og
> jeg ville gerne om de alle kunne blive forvalgt


> Function selValue(vistList)
> Dim selectmarker
> If (gl7 = vistlist) Then

Når gl7 er et array kan du ikke bruge ovenstående sammenligning.

Du kan enten benytte For Each <element> In <array> eller - når det
blot drejer sig om at tjekke for en enkelt værdi - samle dit array
til en streng og tjekke med instr:

strGL7 = join(gl7, "#") ' <-- køres før løkken starter

If instr(strGL7, visitlist) > 0 Then
   ' navnet fundet
Else
   ' navnet ikke fundet
End If

Metoden er ikke 100 % sikker - hvis du har "Træ" og "Træstub" i din
liste array vil "træ" som søgeord markere dem begge. Tilsvarende
kan man også forestille sig at søgeord indeholder skilletegnet (her
#), og dermed finder ting der ikke skulle findes (det sidste er dog
noget mindre sandsynligt.

Hvis du vil tjekke "korrekt" kan du bruge noget lignende dette her:

Dim e
Dim fundet
fundet = false
For each e IN gl7
   If e = visitlist Then
       fundet = true
       Exit For
   End If    
Next
If fundet Then...

> selValue = "<option multiple" & selectmarker & ">" &

Multiple skal stå i select-koden, ikke i de enkelt options. Hvis du
skriver xhtml-kode (det tyder det på) skal det i øvrigt
formentlig være multiple="multiple"
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

jensop (04-06-2003)
Kommentar
Fra : jensop


Dato : 04-06-03 13:50

Hej

Jeg har forsøgt med den nederste "korrekte", men den finder ikke andet end
den første pos. i array, og giver den en "selected" men finder ikke flere
når funktionen kaldes 2. gang

Har du en idé til hvad jeg overser?

Dim e
Dim fundet
Dim arrgl7
Function selValue(vistList)
arrgl7 = Split(gl7,",")
fundet = false
For each e IN arrgl7
If e = vistlist Then
fundet = true
Exit For
End If
Next

Dim selectmarker
If fundet Then
selectmarker = " selected=""SELECTED"""
Else
selectmarker = ""
End If
selValue = "<option "& selectmarker & ">" & vistList
End Function

-------

<select multiple="multiple" name="nyarmylist" size="17">
<%= selValue("Ukendt") %>
<%= selValue("Bretonnians") %>
</select>


--
/Jens Ole Pedersen

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> skrev i en meddelelse
news:Xns9390926ECA68Fjcdmfdk@gyrosmod.dtext.news.tele.dk...
> jensop skrev:
>
> > gl7 er en array af en eller flere af de nedenstående navne, og
> > jeg ville gerne om de alle kunne blive forvalgt
>
>
> > Function selValue(vistList)
> > Dim selectmarker
> > If (gl7 = vistlist) Then
>
> Når gl7 er et array kan du ikke bruge ovenstående sammenligning.
>
> Du kan enten benytte For Each <element> In <array> eller - når det
> blot drejer sig om at tjekke for en enkelt værdi - samle dit array
> til en streng og tjekke med instr:
>
> strGL7 = join(gl7, "#") ' <-- køres før løkken starter
>
> If instr(strGL7, visitlist) > 0 Then
> ' navnet fundet
> Else
> ' navnet ikke fundet
> End If
>
> Metoden er ikke 100 % sikker - hvis du har "Træ" og "Træstub" i din
> liste array vil "træ" som søgeord markere dem begge. Tilsvarende
> kan man også forestille sig at søgeord indeholder skilletegnet (her
> #), og dermed finder ting der ikke skulle findes (det sidste er dog
> noget mindre sandsynligt.
>
> Hvis du vil tjekke "korrekt" kan du bruge noget lignende dette her:
>
> Dim e
> Dim fundet
> fundet = false
> For each e IN gl7
> If e = visitlist Then
> fundet = true
> Exit For
> End If
> Next
> If fundet Then...
>
> > selValue = "<option multiple" & selectmarker & ">" &
>
> Multiple skal stå i select-koden, ikke i de enkelt options. Hvis du
> skriver xhtml-kode (det tyder det på) skal det i øvrigt
> formentlig være multiple="multiple"
> --
> Jens Gyldenkærne Clausen
> Svar venligst under det du citerer, og citer kun det der er
> nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
> hvordan på http://usenet.dk/netikette/citatteknik.html



Jens Gyldenkærne Cla~ (04-06-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 04-06-03 13:59

jensop skrev:

> Jeg har forsøgt med den nederste "korrekte", men den finder
> ikke andet end den første pos. i array, og giver den en
> "selected" men finder ikke flere når funktionen kaldes 2. gang

Hm - umiddelbart ser din funktion rigtigt ud. Der er dog ikke nogen
grund til at kalde Split hver gang du kører funktionen - argumentet
(til split) er jo det samme. Prøv at flytte lidt rundt på dine
linjer:


Dim arrgl7
arrgl7 = Split(gl7,",")

Function selValue(vistList)
   Dim e
   Dim fundet
   fundet = false
   For each e IN arrgl7
If e = vistlist Then
fundet = true
Exit For
End If
   Next

' ... (som før)


> [(full)quote behind posters text deleted by Morver]

NB: Læs venligst min signatur. Bundcitater kan ikke bruges til
noget fornuftigt.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

jensop (04-06-2003)
Kommentar
Fra : jensop


Dato : 04-06-03 14:05

Jeg prøvede først med splitten udenfor, men da den lavede samme nummer satte
jeg den indenfor for at være sikker på, at den tog den forfra, også uden
held



--
/Jens Ole Pedersen



Søg
Reklame
Statistik
Spørgsmål : 177551
Tips : 31968
Nyheder : 719565
Indlæg : 6408826
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste