Avatar billede hansen Nybegynder
03. februar 2004 - 21:55 Der er 5 kommentarer og
1 løsning

Gennemløb data til Selectboks

Jeg har en selectboks med mulighed for flere valg samtidig, men jeg er løbet sur i et udtræk hvor jeg skal redigere noget eksisterende data, hvordan finder jeg de "gamle" valg igen, og markerer dem med blåt i selectboksen ?

Mine "gamle" valg ligger i et array, kan det ikke lade sig gøre at løbe dem igennem og så validere på de gamle valg, og så udfra dette sætte et " selected" her ?


<select size="5" name="nyhedsgruppe" multiple>
<%
SelectArray = "1,3,5"

set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db.mdb")
set Rs = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM mailkat ORDER BY mailgruppe"
set Rs = Conn.Execute(strSQL)
do until rs.eof
    Response.Write "<option value="&Rs("id")&">"&Rs("mailgruppe")&"</option>"
rs.movenext
Loop
Rs.Close
set Rs = nothing   
Conn.Close
set Conn = nothing
%>
</select>
Avatar billede eagleeye Praktikant
03. februar 2004 - 22:03 #1
Prøv at rette:
do until rs.eof
    Response.Write "<option value="&Rs("id")&">"&Rs("mailgruppe")&"</option>"
rs.movenext
Loop

Til denne sådan man tjekke om rs("id") indgår i SelectArray:

do until rs.eof
    Response.Write "<option value="""&Rs("id")&""""
    if inStr(1, ","&SelectArray&",", ","&Rs("id")&",")>0 then response.write " selected "
    Response.Write ">"&Rs("mailgruppe")&"</option>"
rs.movenext
Loop
Avatar billede hansen Nybegynder
03. februar 2004 - 22:16 #2
Det var hurtigt, bor du inde i Eksperten ;-)

Den tager kun første tal i rækken og sætter et selected her !
Avatar billede eagleeye Praktikant
03. februar 2004 - 22:20 #3
er der mellemrum imellem tallene som skal vælges eller kun komma?
Avatar billede hansen Nybegynder
03. februar 2004 - 22:22 #4
3, 4, 6
Avatar billede eagleeye Praktikant
03. februar 2004 - 22:26 #5
Ok, så prøv sådan her:

do until rs.eof
    Response.Write "<option value="""&Rs("id")&""""
    if inStr(1, " "&SelectArray&",", " "&Rs("id")&",")>0 then response.write " selected "
    Response.Write ">"&Rs("mailgruppe")&"</option>"
rs.movenext
Loop


eller det første kode men hvor denne linje kommer ind før do until linjen:

SelectArray = Replace(SelectArray," ","")
Avatar billede hansen Nybegynder
03. februar 2004 - 22:30 #6
Det hjalp, tak for hjælpen, endnu engang.
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