Avatar billede mvk Nybegynder
10. september 2003 - 14:32 Der er 17 kommentarer og
1 løsning

Dropdown der opdaterer sig selv

jeg har 2 dropdown hvor indholdet i den ene er afhængigt af valget i den anden. http://www.capitolshop.dk/new_product_search.asp

men jeg har 2 problemer:
1. når brugeren har valgt mærke ændrer kategori sig efter hans valg. MEN jeg vil gerne have at det valgte mærke bliver stående i Mærke dropdown.
2. det skal være muligt at vælge kategori uden at vælge mærke.

koden kommer her:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/capitol.asp" -->
<%
Dim rsBrand
Dim rsBrand_numRows

Set rsBrand = Server.CreateObject("ADODB.Recordset")
rsBrand.ActiveConnection = MM_capitol_STRING
rsBrand.Source = "SELECT DISTINCT Brand  FROM Product  ORDER BY Brand ASC"
rsBrand.CursorType = 0
rsBrand.CursorLocation = 2
rsBrand.LockType = 1
rsBrand.Open()

rsBrand_numRows = 0
%>
<%
Dim rsCategory__varBrand
rsCategory__varBrand = "1"
If (Request.Querystring("Brand") <> "") Then
  rsCategory__varBrand = Request.Querystring("Brand")
End If
%>
<%
Dim rsCategory
Dim rsCategory_numRows

Set rsCategory = Server.CreateObject("ADODB.Recordset")
rsCategory.ActiveConnection = MM_capitol_STRING
rsCategory.Source = "SELECT DISTINCT Category  FROM Product  WHERE Brand = '" + Replace(rsCategory__varBrand, "'", "''") + "'  ORDER BY Category ASC"
rsCategory.CursorType = 0
rsCategory.CursorLocation = 2
rsCategory.LockType = 1
rsCategory.Open()

rsCategory_numRows = 0
%>
<%
Dim rsBrandSelected__varBrand
rsBrandSelected__varBrand = "1"
If (Request.Querystring("Brand") <> "") Then
  rsBrandSelected__varBrand = Request.Querystring("Brand")
End If
%>
<%
Dim rsBrandSelected
Dim rsBrandSelected_numRows

Set rsBrandSelected = Server.CreateObject("ADODB.Recordset")
rsBrandSelected.ActiveConnection = MM_capitol_STRING
rsBrandSelected.Source = "SELECT *  FROM Product  WHERE Brand = '" + Replace(rsBrandSelected__varBrand, "'", "''") + "'  ORDER BY Brand ASC"
rsBrandSelected.CursorType = 0
rsBrandSelected.CursorLocation = 2
rsBrandSelected.LockType = 1
rsBrandSelected.Open()

rsBrandSelected_numRows = 0
%>
<script language="JavaScript">
function updatecategory(value) {
window.location = "new_product_search.asp?brand="+value;
}
</script>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="capitol.css" rel="stylesheet" type="text/css">
</head>

<body>
<form action="/dk_products.asp" method="post" name="productsearch" target="_top" id="productsearch">
  <table width="100%" border="0" cellspacing="0" cellpadding="3">
    <tr>
      <td class="menuHead">Produkts&oslash;gning</td>
    </tr>
    <tr>
      <td><select name="Brand" id="Brand" class="searchFields" onChange="updatecategory(value)">
          <option value="">Vælg mærke</option>
          <%
While (NOT rsBrand.EOF)
%>
          <option value="<%=(rsBrand.Fields.Item("Brand").Value)%>"><%=(rsBrand.Fields.Item("Brand").Value)%></option>
          <%
  rsBrand.MoveNext()
Wend
If (rsBrand.CursorType > 0) Then
  rsBrand.MoveFirst
Else
  rsBrand.Requery
End If
%>
        </select></td>
    </tr>
    <tr>
      <td><select name="Category" id="Category" class="searchFields">
          <option value="">Vælg kategori</option>
          <%
While (NOT rsCategory.EOF)
%>
          <option value="<%=(rsCategory.Fields.Item("Category").Value)%>"><%=(rsCategory.Fields.Item("Category").Value)%></option>
          <%
  rsCategory.MoveNext()
Wend
If (rsCategory.CursorType > 0) Then
  rsCategory.MoveFirst
Else
  rsCategory.Requery
End If
%>
        </select></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
    </tr>
  </table>
</form>
</body>
</html>
<%
rsBrand.Close()
Set rsBrand = Nothing
%>
<%
rsCategory.Close()
Set rsCategory = Nothing
%>
<%
rsBrandSelected.Close()
Set rsBrandSelected = Nothing
%>

jeg har desværre ikke mere end 21 point :(
Avatar billede luzk Nybegynder
10. september 2003 - 14:50 #1
1. For at sikre at det valgte bliver stående gør du følgende:

<option value="<%=(rsBrand.Fields.Item("Brand").Value)%>"<%If (rsBrand.Fields.Item("Brand").Value) = rsBrandSelected__varBrand Then Response.Write(" SELECTED")%>><%=(rsBrand.Fields.Item("Brand").Value)%>

2. For at det skal være muligt skal du jo have nogle kategorier uden et mærke - kan du uddybe lidt mere hvad du mener?

/Luzk
Avatar billede luzk Nybegynder
10. september 2003 - 14:51 #2
Wops - der var indsneget sig en fejl i etteren - det korrekte er:
<option value="<%=(rsBrand.Fields.Item("Brand").Value)%>"<%If (rsBrand.Fields.Item("Brand").Value) = rsBrandSelected__varBrand Then Response.Write(" SELECTED") End If%>><%=(rsBrand.Fields.Item("Brand").Value)%>

/Luzk
Avatar billede mvk Nybegynder
10. september 2003 - 15:08 #3
Luzk - u the man. den første virker perfekt :)

2. man skal kunne vælge kategori uden at være nødt til at vælge mærke. som det er nu kan man slet ikke vælge mellem kategorierne uden først at vælge et mærke. og det er ikke hensigtsmæssigt hvis man nu vil se alle sko

er det mere forståligt ?
Avatar billede luzk Nybegynder
10. september 2003 - 15:29 #4
OK - tror jeg har forstået hvad det er du vil :-) er det korrekt at du ønsker at når man loader siden første gang, skal den vise alle de mulige kategorier der er at vælge mellem uafhængigt af mærke, og hvis man vælger mærke, skal den kun tage de kategorier der er under det mærke? Hvis det er det du vil, skal du gøre følgende:

I dit check for om det er valgt et mærke, skal du lave to forskellige SQL udtræk.

Det første skal være som det er nu, og skal blive valgt hvis Request.Querystring("Brand") <> ""
Det andet, som du skriver i din Else statement, skal være noget lignende følgende:
SELECT DISTINCT Category  FROM Product ORDER BY Category ASC"

Det burde gøre, at lige meget hvad der bliver valgt i mærke, vil der komme et udtræk under dit kategori felt. Hvis der ikke er valgt noget, vil den vælge alle kategorier, uafhængigt af mærker...

Håber det er forståeligt :-)

/Luzk
Avatar billede mvk Nybegynder
10. september 2003 - 15:47 #5
hehe - jeg prøver
Avatar billede mvk Nybegynder
10. september 2003 - 15:50 #6
done - men jeg kan da ikke få en dropdown til at være afhængig af begge recordset vel ?
Avatar billede mvk Nybegynder
10. september 2003 - 15:51 #7
Det er de 2 recordset jeg har:

<%
Dim rsCategoryFull
Dim rsCategoryFull_numRows

Set rsCategoryFull = Server.CreateObject("ADODB.Recordset")
rsCategoryFull.ActiveConnection = MM_capitol_STRING
rsCategoryFull.Source = "SELECT DISTINCT Category  FROM Product  ORDER BY Category ASC"
rsCategoryFull.CursorType = 0
rsCategoryFull.CursorLocation = 2
rsCategoryFull.LockType = 1
rsCategoryFull.Open()

rsCategoryFull_numRows = 0
%>

<%
Dim rsCategory__varBrand
rsCategory__varBrand = "1"
If (Request.Querystring("Brand") <> "") Then
  rsCategory__varBrand = Request.Querystring("Brand")
End If
%>
<%
Dim rsCategory
Dim rsCategory_numRows

Set rsCategory = Server.CreateObject("ADODB.Recordset")
rsCategory.ActiveConnection = MM_capitol_STRING
rsCategory.Source = "SELECT DISTINCT Category  FROM Product  WHERE Brand = '" + Replace(rsCategory__varBrand, "'", "''") + "'  ORDER BY Category ASC"
rsCategory.CursorType = 0
rsCategory.CursorLocation = 2
rsCategory.LockType = 1
rsCategory.Open()

rsCategory_numRows = 0
%>
<%
Dim rsBrandSelected__varBrand
rsBrandSelected__varBrand = "1"
If (Request.Querystring("Brand") <> "") Then
  rsBrandSelected__varBrand = Request.Querystring("Brand")
End If
%>
Avatar billede pelskee Nybegynder
10. september 2003 - 16:01 #8
er det sådan:

<option value="<%If Request.Querystring("Brand") <> "" Then (rsCategory.Fields.Item("Category").Value) Else (rsCategoryFull.Fields.Item("Category").Value)%>
Avatar billede mvk Nybegynder
10. september 2003 - 16:05 #9
nej - det tror jeg ikke passer
Avatar billede luzk Nybegynder
10. september 2003 - 16:15 #10
Prøv følgende kode - sorry jeg er lidt lang tid om at svare...
*btw* koden er ikke testet, for har ikke database og include filen

-----
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/capitol.asp" -->
<%
Dim rsBrand
Dim rsBrand_numRows

Set rsBrand = Server.CreateObject("ADODB.Recordset")
rsBrand.ActiveConnection = MM_capitol_STRING
rsBrand.Source = "SELECT DISTINCT Brand  FROM Product  ORDER BY Brand ASC"
rsBrand.CursorType = 0
rsBrand.CursorLocation = 2
rsBrand.LockType = 1
rsBrand.Open()

rsBrand_numRows = 0

Dim rsCategory__varBrand
rsCategory__varBrand = "1"
If (Request.Querystring("Brand") <> "") Then
  rsCategory__varBrand = Request.Querystring("Brand")
End If

Dim rsCategory
Dim rsCategory_numRows

Set rsCategory = Server.CreateObject("ADODB.Recordset")
rsCategory.ActiveConnection = MM_capitol_STRING
If (Request.Querystring("Brand") <> "") Then
  rsCategory.Source = "SELECT DISTINCT Category  FROM Product  WHERE Brand = '" + Replace(rsCategory__varBrand, "'", "''") + "'  ORDER BY Category ASC"
Else
  rsCategory.Source = "SELECT DISTINCT Category  FROM Product ORDER BY Category ASC"
End If
rsCategory.CursorType = 0
rsCategory.CursorLocation = 2
rsCategory.LockType = 1
rsCategory.Open()

rsCategory_numRows = 0

Dim rsBrandSelected__varBrand
rsBrandSelected__varBrand = "1"
If (Request.Querystring("Brand") <> "") Then
  rsBrandSelected__varBrand = Request.Querystring("Brand")
End If

Dim rsBrandSelected
Dim rsBrandSelected_numRows

Set rsBrandSelected = Server.CreateObject("ADODB.Recordset")
rsBrandSelected.ActiveConnection = MM_capitol_STRING
rsBrandSelected.Source = "SELECT *  FROM Product  WHERE Brand = '" + Replace(rsBrandSelected__varBrand, "'", "''") + "'  ORDER BY Brand ASC"
rsBrandSelected.CursorType = 0
rsBrandSelected.CursorLocation = 2
rsBrandSelected.LockType = 1
rsBrandSelected.Open()

rsBrandSelected_numRows = 0
%>

<script language="JavaScript">
function updatecategory(value) {
window.location = "new_product_search.asp?brand="+value;
}
</script>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="capitol.css" rel="stylesheet" type="text/css">
</head>

<body>
<form action="/dk_products.asp" method="post" name="productsearch" target="_top" id="productsearch">
  <table width="100%" border="0" cellspacing="0" cellpadding="3">
    <tr>
      <td class="menuHead">Produkts&oslash;gning</td>
    </tr>
    <tr>
      <td><select name="Brand" id="Brand" class="searchFields" onChange="updatecategory(value)">
          <option value="">Vælg mærke</option>
          <%
While (NOT rsBrand.EOF)
%>
          <option value="<%=(rsBrand.Fields.Item("Brand").Value)%>"<%If (rsBrand.Fields.Item("Brand").Value) = rsBrandSelected__varBrand Then Response.Write(" SELECTED") End If%>><%=(rsBrand.Fields.Item("Brand").Value)%>
          <%
  rsBrand.MoveNext()
Wend
If (rsBrand.CursorType > 0) Then
  rsBrand.MoveFirst
Else
  rsBrand.Requery
End If
%>
        </select></td>
    </tr>
    <tr>
      <td><select name="Category" id="Category" class="searchFields">
          <option value="">Vælg kategori</option>
          <%
While (NOT rsCategory.EOF)
%>
          <option value="<%=(rsCategory.Fields.Item("Category").Value)%>"><%=(rsCategory.Fields.Item("Category").Value)%></option>
          <%
  rsCategory.MoveNext()
Wend
If (rsCategory.CursorType > 0) Then
  rsCategory.MoveFirst
Else
  rsCategory.Requery
End If
%>
        </select></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
    </tr>
  </table>
</form>
</body>
</html>
<%
rsBrand.Close()
Set rsBrand = Nothing
%>
<%
rsCategory.Close()
Set rsCategory = Nothing
%>
<%
rsBrandSelected.Close()
Set rsBrandSelected = Nothing
%>

----

/Luzk
Avatar billede mvk Nybegynder
10. september 2003 - 16:21 #11
perfekt - prøv og se linket
du er for sej :)
Avatar billede mvk Nybegynder
10. september 2003 - 16:22 #12
smid et svar :)
Avatar billede luzk Nybegynder
10. september 2003 - 16:25 #13
Kewl - glad for det virker :D

hermed et styks svar :-)

/Luzk
Avatar billede luzk Nybegynder
10. september 2003 - 16:27 #14
*btw* det er da forresten et rimelig cool design der er på det site - kan jeg sQ godt li' - blot en ekstra lille kommentar :D

/Luzk
Avatar billede mvk Nybegynder
11. september 2003 - 10:45 #15
thanks Luzk :)
kan du ikke lige teste Produktsøgning på www.capitolshop.dk/dk_index.asp
når man vælger Mærke hopper knappen over på den anden side... ?
Avatar billede luzk Nybegynder
11. september 2003 - 11:07 #16
Det kan der være to grunde til:

1. Før du vælger mærke, har du lige under din form denne linie:
  <table width="100" border="0" cellspacing="0" cellpadding="3">
  Men efterfølgende er linien:
  <table width="100%" border="0" cellspacing="0" cellpadding="3">
  læg mærke til % tegnet...

2. Før du vælger mærke ser din tabel kolonne med knappen i sådan ud:
  <td align="right"> <div align="right">
          <input type="submit" name="Submit" value="S&oslash;g" class="buttons">
        </div></td>
  Men efterfølgende ser den sådan ud:
  <td><input type="submit" name="Submit" value="S&oslash;g" class="buttons"></td>

Dvs, at du ikke højrestiller efter du har valgt mærke, og det skal du have lavet ens begge steder...

*btw* hvad skete der med acceptere/afvise mit svar?? :-)

/Luzk
Avatar billede mvk Nybegynder
11. september 2003 - 11:21 #17
sorry man :) - my bad - ved ikke hvad jeg kom til at trykke på

thanks :)
Avatar billede luzk Nybegynder
11. september 2003 - 11:46 #18
Det gør ingen ting - undrede mig bare over hvorfor det ikke var lukket :D

glad for det virker

Tak for point :-)

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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel