18. marts 2004 - 10:33Der er
25 kommentarer og 1 løsning
afkryds checkbox hvis der er lighed
Hej alle,
Jeg har en tabel med nogle farver i: blå, rød og hvid for eksempel.
Jeg har så en anden tabel hvor jeg kan oprette en ny ting og vælge hvilke farver tingen findes i.
Jeg har så foreksempel valgt en ting der kan fås i farverne blå og hvid. det bliver så oprettet i et recordset der hedder farver, og står således: blå,hvid
Når jeg så skal redigere den ting, har looper jeg igennem den tabel der kun indeholder farverne, og det resulterer så i en række checkboxe hvor jeg gerne ville have det sådan at de farver der var valgt (blå,hvid) automatisk blev afkrydset.
Mit spørgsmål er så, hvordan får jeg delt mit farverecordset op og loopet igennem det hver gang der bliver genereret en ny checkbox, så den kan se om farven matcher og dermed skal afkrydses?
Håber det giver mening, for jeg er virkelig på bar bund her.
Et eksempel som man kunne kigge på ville være rart... :-)
Når du skriver recordset, mener du så at du har lavet et databaseopslag, hvor der er en kolonne der hedder farver? Er den kommasepareret, eller er der flere række for hver farve?
ja det er en kolonne der hedder farver og den er kommasepareret.
Eksemplet er således: <% select * from farver order by farver asc while not rs.eof %> <input type=checkbox name=farve value="<% =rs("farve") %>"><% =rs("farve") %> <% rs.movenext wend %>
Så har jeg den anden tabel hvor jeg har min kommasepareret kolonne(blå,hvid), og den skulle gerne tjekkes igennem for lighed inden i mit while loop.
ovenstående script er lige hurtigt skrevet ned for at give dig en ide om det, så jeg ved godt der mangler nogle ting i det :)
Øhm. Så du har altså TO recordset, med et kommasep. i begge, og nu lister du alle de farver der findes i tabel1, og hvis farven ligeledes findes i tabel2, skal checkboxen samtidig checkes... Korrekt?
Forstår jeg dig ret, så skal der i dit while-loop ovenfor, som får udskrevet check-boksene, sættes et check-mærke, hvis farven findes i den anden tabel. men så kan du jo, når du står med en farve hurtigt afgøre, om den er med i din farveliste.
tabel1 (farvetabellen) er ikke kommasepareret, men indeholder unikt id pr farve. tabel2 (tabellen man opretter i) er kommasepareret.
Så der loopes igennem tabel1 for at lave checkboxlisten over farver, og så inde i det loop skal der (går jeg udfra) loopes igennem den kommasepareret tekststreng for at se om nogle af farverne matcher.
Hvor komme kommaspareingen ind i billedet? Det virker som om det er selve farven, du læser. Men hvis du kan have farverne, du skal afkrydse for gemt i en tekststreng af formen ",red,blue,green,...,black," kan du jo benytte funktionen inStr, til at adgøre om f.eks. ",blue," findes i strengen.
Ok, nu tror jeg jeg forstår. hvis du så sætter farve="," & rs("farve") & "," og farve listen hedder farver, så vil Inst(farver,farve) være større end 0, hvis farve er med i farver.
Men hvis du ved, at en sådan situation ikke kan forkomme så behøver du ikke de ekstra kommaer og kan gøre således: <% if rs("farve") = Instr(strfarve,rs("farve") then %>afkryds checkbox<%end if%>
Du kan i hvert fald få opdelt din kommasep. streng med
farveArray = Split(kommaSepareredeFarver, ",")
hvor du naturligvis skal indsætte det korrekte felt istedet for kommaSepareredeFarver :-)
<% farveArray = Split(kommaSepareredeFarver, ",") while not rs.eof for (i = LBound(farveArray) to UBound(farveArray)) %> <input type=checkbox name=farve value="<% =rs("farve") %>" <% if (rs("farve") = farveArray[i]) then %> checked="checked" <% end if %> ><% =rs("farve") %> <% next rs.movenext wend %>
Jeg går virkelig ikke op i det med point. Jeg har mere end rigeligt med point til mig selv, til når jeg har et spørgsmål jeg gerne vil have besvaret, og jeg har under ingen omstændigheder den fornødne tid, til at gøre mig gældende på de forskellige hitlister. Så jeg bukker og takker nej.
Selv tak, det var så lidt. jeg er glad for at kunne hjælpe.
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.