Avatar billede copeland Nybegynder
20. februar 2001 - 15:03 Der er 5 kommentarer og
1 løsning

Dobbelt loop......problem

Jeg returnere værdierne fra en multiple select som er gemt i en database f.eks. 1, 4, 6

Min multiple select bliver genereret fra databasen

Nu vil jeg så redigere disse data, og så vise min multiselect hvor de der er valgt og gemt i min streng, nu også er markeret når jeg kalder min multiple select.

Så jeg skal loope igennem tabellen der genererer multiple select boxen.

splitte min streng til de enkelte værdier der var valgt og loope igennem her.

der hvor de så er ens bliver der skrevet selected i mit <option> tag.

Det fungerer også fint nok, og de valgte bliver markeret, bortset fra at alle værdierne i min multiple select box bliver vist to gange/dobbelt - og det er jo fordi jeg looper 2 gange.....men jeg kan simpelthen ikke få det til at virke uden....hvad gør jeg?

<%
Set popConn = Server.CreateObject(\"ADODB.Connection\")
popConn.Open strDSN

SQL=\"select InfoAnsvarID,InfoAnsvarNavn from TInfoAnsvar ORDER BY InfoAnsvarNavn\"
Set rstemp = popConn.Execute(SQL)
do  until rstemp.eof

dim DInfoAnsvar
DInfoAnsvar=rs(\"InfoAnsvar\")
page = split(DInfoAnsvar,\",\")
For I = 0 To ((UBound(page)))
if cint(page(i))=cint(rstemp(0)) then
%>
<option value=\"<%=rstemp(0)%>\" selected><%=rstemp(1)%>
<%else%>
<option value=\"<%=rstemp(0)%>\"><%=rstemp(1)%>
<%end if%>
               
<%
next
rstemp.movenext
 
loop

rstemp.close
set rstemp=nothing
popConn.close
set popConn=nothing
%>

/anne
Avatar billede eagleeye Praktikant
20. februar 2001 - 15:12 #1
Den her \"DInfoAnsvar=rs(\"InfoAnsvar\") \" er inde i loopet \"do  until rstemp.eof\"

Prøv at flytte:
dim DInfoAnsvar
DInfoAnsvar=rs(\"InfoAnsvar\")
uden for \"do until restemp.eof

Du benytter rs(\"InfoAnsvar\") skulle det evt være rstemp(\"InfoAnsvar\") ??
Avatar billede eagleeye Praktikant
20. februar 2001 - 15:14 #2
Hvis  DInfoAnsvar=rs(\"InfoAnsvar\") skal være i loppet så ville jeg gætte på du også skulle hvade en rs.movenext ind efter \"rstemp.movenext\"
Avatar billede eagleeye Praktikant
20. februar 2001 - 15:32 #3
Hvis

page(0)=1
page(1)=3
page(2)=6
rstemp(0)=3

med denne function:

For I = 0 To ((UBound(page)))
if cint(page(i))=cint(rstemp(0)) then
%>
<option value=\"<%=rstemp(0)%>\" selected><%=rstemp(1)%>
<%else%>
<option value=\"<%=rstemp(0)%>\"><%=rstemp(1)%>
<%end if%>
<%
next


Bliver outputet:
<option value=\"3\">NavnFraDatabase
<option value=\"3\" selected>NavnFraDatabase
<option value=\"3\">NavnFraDatabase
Avatar billede eagleeye Praktikant
20. februar 2001 - 15:35 #4
Jeg ville gætte på du skal:

if instr(1, DInfoAnsvar, CStr(rstemp(0)) then
  <option value=\"<%=rstemp(0)%>\" selected><%=rstemp(1)%>
else
  <option value=\"<%=rstemp(0)%>\"><%=rstemp(1)%>
end if
Avatar billede eagleeye Praktikant
20. februar 2001 - 15:37 #5
Altså din kode vil se såsan ud:

<%
Set popConn = Server.CreateObject(\"ADODB.Connection\")
popConn.Open strDSN

SQL=\"select InfoAnsvarID,InfoAnsvarNavn from TInfoAnsvar ORDER BY InfoAnsvarNavn\"
Set rstemp = popConn.Execute(SQL)

dim DInfoAnsvar
DInfoAnsvar=rs(\"InfoAnsvar\")

do until rstemp.eof
if instr(1, DInfoAnsvar, CStr(rstemp(0)) then
%>
  <option value=\"<%=rstemp(0)%>\" selected><%=rstemp(1)%>
<%else%>
  <option value=\"<%=rstemp(0)%>\"><%=rstemp(1)%>
<%end if
rstemp.movenext

loop

rstemp.close
set rstemp=nothing
popConn.close
set popConn=nothing
%>
Avatar billede copeland Nybegynder
20. februar 2001 - 16:30 #6
\"The eagle has landed\" ..... det virker TAK
Perfekt
Kanon

/anne
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