Avatar billede mvk Nybegynder
03. september 2003 - 15:55 Der er 3 kommentarer og
1 løsning

Hvordan fjernes tomme værdier fra dropdown

http://www.capitolshop.dk/dk_product.asp?IDproduct=51&Brand=Chocolate&Sex=Woman&Name=2222&Category=Beenies

prøv og se den dropdown med "Vælg størrelse". mit udtræk fra databasen viser kun de størrelser der er på lager, men den viser blanke felter for dem som ikke er.

Hvordan fjerner jeg de blanke fra dropdown ?

Koden:
<select name="select" class="fields">
                                      <option value="">Vælg størrelse</option>
                                      <%
While (NOT rsAvailableSizes.EOF)
%>
                                      <option value="<%=(rsAvailableSizes.Fields.Item("s24").Value)%>"><%=(rsAvailableSizes.Fields.Item("s24").Value)%></option>
                                      <option value="<%=(rsAvailableSizes.Fields.Item("s26").Value)%>"><%=(rsAvailableSizes.Fields.Item("s26").Value)%></option>
                                      <option value="<%=(rsAvailableSizes.Fields.Item("s28").Value)%>"><%=(rsAvailableSizes.Fields.Item("s28").Value)%></option>
                                      <option value="<%=(rsAvailableSizes.Fields.Item("s30").Value)%>"><%=(rsAvailableSizes.Fields.Item("s30").Value)%></option>
                                      <option value="<%=(rsAvailableSizes.Fields.Item("s32").Value)%>"><%=(rsAvailableSizes.Fields.Item("s32").Value)%></option>
                                      <option value="<%=(rsAvailableSizes.Fields.Item("s34").Value)%>"><%=(rsAvailableSizes.Fields.Item("s34").Value)%></option>
                                      <option value="<%=(rsAvailableSizes.Fields.Item("s36").Value)%>"><%=(rsAvailableSizes.Fields.Item("s36").Value)%></option>
                                      <option value="<%=(rsAvailableSizes.Fields.Item("s38").Value)%>"><%=(rsAvailableSizes.Fields.Item("s38").Value)%></option>
                                      <option value="<%=(rsAvailableSizes.Fields.Item("XS").Value)%>"><%=(rsAvailableSizes.Fields.Item("XS").Value)%></option>
                                      <option value="<%=(rsAvailableSizes.Fields.Item("S").Value)%>"><%=(rsAvailableSizes.Fields.Item("S").Value)%></option>
                                      <option value="<%=(rsAvailableSizes.Fields.Item("M").Value)%>"><%=(rsAvailableSizes.Fields.Item("M").Value)%></option>
                                      <option value="<%=(rsAvailableSizes.Fields.Item("L").Value)%>"><%=(rsAvailableSizes.Fields.Item("L").Value)%></option>
                                      <option value="<%=(rsAvailableSizes.Fields.Item("XL").Value)%>"><%=(rsAvailableSizes.Fields.Item("XL").Value)%></option>
                                      <option value="<%=(rsAvailableSizes.Fields.Item("XXL").Value)%>"><%=(rsAvailableSizes.Fields.Item("XXL").Value)%></option>
                                      <%
  rsAvailableSizes.MoveNext()
Wend
If (rsAvailableSizes.CursorType > 0) Then
  rsAvailableSizes.MoveFirst
Else
  rsAvailableSizes.Requery
End If
%>
                                    </select>
Avatar billede nmh Nybegynder
03. september 2003 - 16:10 #1
Du kan  til at lave en test af typen
<%if rsAvailableSizes.Fields.Item("s24").Value<>"" then%>
<option value="<%=(rsAvailableSizes.Fields.Item("s24").Value)%>"><%=(rsAvailableSizes.Fields.Item("s24").Value)%></option>
<%end if%>
og gøre for alle felter.
Avatar billede nmh Nybegynder
03. september 2003 - 16:33 #2
men det kan skrives mere overskueligt.
F.eks. således:
Brug  variable til at gemme de forskellige værdier:
s24=rsAvailableSizes.Fields.Item("s24").Value)
Nu kan du benytte s24 i stedet for det lange udtryk rsAvailableSizes.Fields.Item("s24").Value

Du kunne også med fordel gemme alle data fra rsAvailableSizes i et array rsA. (Der er vist 13 felter)
Så ville udskriften kunne laves nogenlunde således:
<select.....>
<%
While (NOT rsAvailableSizes.EOF)
  gem alle data fra rsAvailableSizes.Fields... i tabellen rsA
  for i=1 to 13
    if rsA(i)<>"" then
      Response.write("<option value=" & rsA(i) &">" & rsA(i) & "</option>")
    end if
  next 
  rsAvailableSizes.MoveNext()
Wend
If (rsAvailableSizes.CursorType > 0) Then
  rsAvailableSizes.MoveFirst
Else
  rsAvailableSizes.Requery
End If
%>
                                    </select>
Avatar billede mvk Nybegynder
03. september 2003 - 16:36 #3
big it up!
u the man
thanks nmh ;)
Avatar billede nmh Nybegynder
03. september 2003 - 16:52 #4
det var så lidt. jeg takker for point.
En anden ting du kunne overveje var at flytte hele record-sættet ind i et array.
ADO-metoden getrows kan bruges til at flytte hele sættet ind i et array. Det letter ofte håndteringen af data.
Se f.eks. her:
http://www.4guysfromrolla.com/webtech/tips/t053100-1.shtml
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