Avatar billede gommasch Nybegynder
12. juli 2004 - 16:21 Der er 14 kommentarer og
1 løsning

Syntaks-problemer med dropdown box i ASP

Hej

Nu giver jeg op. Jeg kan ikke få syntaksen til at fungere med en dropdown box i ASP.
Den viser kun sidst fundne resultat i dropdownbox'en - og uanset om jeg vælger noget eller ej sender den info fra sidst fundne produkt til min shopcart.

Nogen der kan gennemskue hvordan dropdown box'en puttes ind ?

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Kabinet</title>
</head>

<body>

<%
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/database/hovedmenu.mdb")
Set myCon = Server.CreateObject("ADODB.Connection")
myCon.Open strDSN

Varenr = request.querystring("varenr")

SQL = "SELECT (SELECT pris  FROM produkter where config.varenr=produkter.varenr) AS Prispc, (SELECT varenavn  FROM produkter WHERE varenr=kabinet) AS Kabinet, (SELECT pris  FROM produkter where varenr=kabinet) AS Priskabinet, (SELECT pris FROM produkter WHERE varenr=xkabinet) AS Prisxkabinet, (SELECT Varenr FROM produkter where varenr=kabinet) AS Varenrkabinet FROM Produkter INNER JOIN Config ON Produkter.Varenr=Config.Varenr WHERE Config.Varenr='" & varenr & "' AND (SELECT webstatus FROM produkter WHERE varenr=kabinet)='www'"

Set rs = mycon.Execute(SQL)

If not (rs.BOF or rs.EOF) Then

Response.Write "Pris før ændringer: Kr. " & rs("prispc")*1.25 & ",00" & "<BR>" & "<BR>"
Response.Write "Kabinet" & "<BR>"

Do while not rs.EOF

prispc=rs("prispc")*1.25
Pris = (rs("priskabinet")-rs("prisxkabinet"))*1.25
kabinet = rs("kabinet")
varenrkabinet = rs("Varenrkabinet")

Response.Write rs("kabinet") & " ( Kr. " & "" & Pris & "" & " )" & "<BR>"

rs.movenext
loop

Else

Response.write "Ingen opgraderinger tilgængelige, ring for opgradering."

End if
%>

<form method="GET" action="shopcart.asp" target="_self">
<select size="1" name="D1">
<option selected>Vælg</option>
<option><%=kabinet%> ( Kr. <%=Pris%> )</option>
  <input type="hidden" name="Quantity" value="1">
  <input type="hidden" name="Action" value="AddItem">
  <input type="hidden" name="Price" value="<%=Pris%>">
  <input type="hidden" name="ProductID" value="<%=Varenrkabinet%>">
  <input type="hidden" name="ProductName" value="<%=kabinet%>">
  <input type="submit" value="Send"><input type="reset" value="Nulstil" name="B2">
</select>
</form>

</body>
</html>
Avatar billede jytte Nybegynder
12. juli 2004 - 20:46 #1
hvis du skal have mere en een værdi i din select skal den laves indeni din loop

dim strselect
strselect = "<select name=""D1"">"
strselect = strselect & "<option selected>Vælg</option>"
Do while not rs.EOF

    prispc=rs("prispc")*1.25
    Pris = (rs("priskabinet")-rs("prisxkabinet"))*1.25
    kabinet = rs("kabinet")
    varenrkabinet = rs("Varenrkabinet")

    Response.Write rs("kabinet") & " ( Kr. " & "" & Pris & "" & " )" & "<BR>"
    strSelect = strSelect & "<option>" & kabinet & "(Kr." & Pris & ")<option>"
    rs.movenext
loop
strSelect = strSelect & "</select>"
Else

Response.write "Ingen opgraderinger tilgængelige, ring for opgradering."

End if
%>

<form method="GET" action="shopcart.asp" target="_self">
  <% = strSelect%>
  <input type="hidden" name="Quantity" value="1">
  <input type="hidden" name="Action" value="AddItem">
  <input type="hidden" name="Price" value="<%=Pris%>">
  <input type="hidden" name="ProductID" value="<%=Varenrkabinet%>">
  <input type="hidden" name="ProductName" value="<%=kabinet%>">
  <input type="submit" value="Send"><input type="reset" value="Nulstil" name="B2">
</form>
Avatar billede gommasch Nybegynder
13. juli 2004 - 09:17 #2
Hej Jytte

Den viser nu de to resultater fint, nøjagtig som de skal vises, de er bare listet under hinanden UDEN en dropdown box.

<form method="GET" action="shopcart.asp" target="_self">

<%
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/database/hovedmenu.mdb")
Set myCon = Server.CreateObject("ADODB.Connection")
myCon.Open strDSN

Varenr = request.querystring("varenr")

SQL = "SELECT (SELECT pris  FROM produkter where config.varenr=produkter.varenr) AS Prispc, (SELECT varenavn  FROM produkter WHERE varenr=kabinet) AS Kabinet, (SELECT pris  FROM produkter where varenr=kabinet) AS Priskabinet, (SELECT pris FROM produkter WHERE varenr=xkabinet) AS Prisxkabinet, (SELECT Varenr FROM produkter where varenr=kabinet) AS Varenrkabinet FROM Produkter INNER JOIN Config ON Produkter.Varenr=Config.Varenr WHERE Config.Varenr='" & varenr & "' AND (SELECT webstatus FROM produkter WHERE varenr=kabinet)='www'"

Set rs = mycon.Execute(SQL)

If not (rs.BOF or rs.EOF) Then

Response.Write "Pris før ændringer: Kr. " & rs("prispc")*1.25 & ",00" & " ( " & FormatNumber(rs("prispc"),2) & " )" & "<BR>" & "<BR>"
Response.Write "Kabinet" & "<BR>"

dim strselect
strselect = "<select name=""D1"">"
strselect = strselect & "<option selected>Vælg</option>"

Do while not rs.EOF

    prispc=rs("prispc")*1.25
    Pris = (rs("priskabinet")-rs("prisxkabinet"))*1.25
    kabinet = rs("kabinet")
    varenrkabinet = rs("Varenrkabinet")

    Response.Write rs("kabinet") & " ( Kr. " & "" & Pris & "" & " )" & "<BR>"
    strSelect = strSelect & "<option>" & kabinet & "(Kr." & Pris & ")<option>"
    rs.movenext
   
loop

strSelect = strSelect & "</select>"

Else

Response.write "Ingen opgraderinger tilgængelige, ring for opgradering."

End if
%>

</form>
Avatar billede gommasch Nybegynder
13. juli 2004 - 11:57 #3
Nu vises dropdown boxen fint. Problemet er bare, at den sender sidst fundne vare til min kurv uanset hvad jeg vælger i dropdown boxen.

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Kabinet</title>
</head>

<body>

<form method="GET" action="shopcart.asp" target="_self">
<select name="D1">"
<%
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/database/hovedmenu.mdb")
Set myCon = Server.CreateObject("ADODB.Connection")
myCon.Open strDSN

Varenr = request.querystring("varenr")

SQL = "SELECT (SELECT pris  FROM produkter where config.varenr=produkter.varenr) AS Prispc, (SELECT varenavn  FROM produkter WHERE varenr=kabinet) AS Kabinet, (SELECT pris  FROM produkter where varenr=kabinet) AS Priskabinet, (SELECT pris FROM produkter WHERE varenr=xkabinet) AS Prisxkabinet, (SELECT Varenr FROM produkter where varenr=kabinet) AS Varenrkabinet FROM Produkter INNER JOIN Config ON Produkter.Varenr=Config.Varenr WHERE Config.Varenr='" & varenr & "' AND (SELECT webstatus FROM produkter WHERE varenr=kabinet)='www'"

Set rs = mycon.Execute(SQL)

If not (rs.BOF or rs.EOF) Then

Response.Write "Pris før ændringer: Kr. " & rs("prispc")*1.25 & ",00" & " ( " & FormatNumber(rs("prispc"),2) & " )" & "<BR>" & "<BR>"
Response.Write "Kabinet" & "<BR>"

'dim strselect
'strselect = "<select name=""D1"">"
'strselect = strselect & "<option selected>Vælg</option>"

response.write "<option selected>Vælg</option>"

Do while not rs.EOF
    prispc=rs("prispc")*1.25
    Prismoms = FormatNumber(((rs("priskabinet")-rs("prisxkabinet"))*1.25),2)
    Prismomsex = FormatNumber(rs("priskabinet")-rs("prisxkabinet"),2)
    kabinet = rs("kabinet")
    varenrkabinet = rs("Varenrkabinet")

%>

<option value="<%=rs("kabinet")%>"><%=rs("kabinet")%> <%=Prismoms%> ( <%=Prismomsex%> )</option>

<%

rs.movenext
loop

Else

Response.write "Ingen opgraderinger tilgængelige, ring for opgradering."

End if
%>

<input type="hidden" name="Quantity" value="1">
  <input type="hidden" name="Action" value="AddItem">
  <input type="hidden" name="Price" value="<%=Prismomsex%>">
  <input type="hidden" name="ProductID" value="<%=Varenrkabinet%>">
  <input type="hidden" name="ProductName" value="*<%=kabinet%>">
  <input type="submit" value="Send"><input type="reset" value="Nulstil" name="B2">
</select>
</form>

</body>

</html>
Avatar billede gommasch Nybegynder
13. juli 2004 - 16:02 #4
Mit problem ligger vist i disse linjer:

<input type="hidden" name="Quantity" value="1">
<input type="hidden" name="Action" value="AddItem">
<input type="hidden" name="Price" value="<%=Prismomsex%>">
<input type="hidden" name="ProductID" value="<%=Varenrkabinet%>">
<input type="hidden" name="ProductName" value="*<%=kabinet%>">
<input type="submit" value="Send"><input type="reset" value="Nulstil" name="B2">

Den vare jeg vælger i dropdown boxen skal sende ovenstående værdier til shopcart men de repræsenterer altid sidst fundne vare i dropdownboxen - oså selvom jeg ikke vælger noget.
Avatar billede jytte Nybegynder
13. juli 2004 - 16:21 #5
hm -- jeg kan ikke lige se hvad der går galt.

prøv evt. at vise mig hvordan "vis kilde" ser ud på den side der viser din dropdown.
Avatar billede jytte Nybegynder
13. juli 2004 - 16:31 #6
varenr´et du bruger i din SQL-sætning får du fra querystringen, men er det det varenr du er interesseret i ?
Er du mere interesseret i varenummeret for den vare du vælger i din dropdown ? -- I så fald skal du vel vente med at beregne de værdier du skriver i dine hidden-felter til efter du har submittet (eller misforstår jeg dig ?)
Avatar billede gommasch Nybegynder
13. juli 2004 - 16:45 #7
Korrekt, jeg er kun interesseret i det varenummer som vælges i dropdown.
Det varenummer som kommer fra min SQL-sætning er "::varenr::" fra den forrige side men det overføres altså til varen med "Varenrkabinet" i SQL-sætningen.

Det ER også Varenrkabinet som submittes men altså kun for den sidst fundne, nederste vare i dropdown.

Vis kilde fungerer åbenbart ikke på sitet, for jeg kan ikke få noget frem.
Avatar billede gommasch Nybegynder
13. juli 2004 - 16:54 #8
Her er min kilde:


<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Kabinet</title>
</head>

<body>

<form method="GET" action="shopcart.asp" target="_self">
<select name="D1">"
Pris før ændringer: Kr. 7395,00 ( 5.916,00 )<BR><BR>Kabinet<BR><option selected>Vælg</option>

<option value="Aopen H700B, FullTower, ATX, sort/sølv">Aopen H700B, FullTower, ATX, sort/sølv200,00 ( 160,00 )</option>



<option value="Aopen QF50A, MidiTower, ATX, sort/sølv">Aopen QF50A, MidiTower, ATX, sort/sølv-300,00 ( -240,00 )</option>



<option value="Aopen H450B MicroTower, MATX, sort/sølv">Aopen H450B MicroTower, MATX, sort/sølv-400,00 ( -320,00 )</option>



<input type="hidden" name="Quantity" value="1">
  <input type="hidden" name="Action" value="AddItem">
  <input type="hidden" name="Price" value="-320,00">
  <input type="hidden" name="ProductID" value="kab-h450b">
  <input type="hidden" name="ProductName" value="*Aopen H450B MicroTower, MATX, sort/sølv">
  <input type="submit" value="Send"><input type="reset" value="Nulstil" name="B2">
</select>
</form>

</body>

</html>
Avatar billede gommasch Nybegynder
13. juli 2004 - 16:58 #9
Stjernen i ProductName tilføjes bare for yderligere info om opgraderingsvarer.

Shopcarten viser også fint det rigtige varenr, navn og beløb, jeg kan bare ikke få lov til selv at vælge hvilken vare jeg vil købe !
Avatar billede jytte Nybegynder
13. juli 2004 - 17:19 #10
I dine hidden-felter skriver du jo den sidste værdi af Prismomsex,Varenrkabinet og kabinet (for hver loop-gennemløb ændres disse værdier jo, så der hvor du laver dine hiddenfelter skriver du altid de sidste værdier).

du kan i stedet fjerne hiddenfelterne og udføre sqlsætningen (modificeret)igen efter du submitter for at slå værdierne op der hører til det du valgte i drop-downen

er det sort snak, eller kan du se hvad jeg mener ?
Avatar billede gommasch Nybegynder
14. juli 2004 - 11:16 #11
Hm...kan ikke helt gennemskue hvordan jeg får sendt de rigtige data videre og hvor jeg placerer en sql som kan det du beskriver.

Sender en dropdown ikke kun éen værdi ? - Min skal jo sende 3: Price=prismomsex, ProductID=varenrkabinet og ProductName=kabinet.
Avatar billede gommasch Nybegynder
14. juli 2004 - 11:22 #12
Skal der noget a'la dette blandes ind i det ?

http://www.eksperten.dk/spm/519151
Avatar billede gommasch Nybegynder
14. juli 2004 - 11:23 #13
Undskyld, sikke en gang vrøvl. Det var selvfølgelig denne jeg mente:

http://www.eksperten.dk/spm/517407
Avatar billede gommasch Nybegynder
14. juli 2004 - 15:15 #14
Avatar billede gommasch Nybegynder
14. juli 2004 - 19:11 #15
Drop down virker da nu, smider lige et spørgsmål som bedre modsvarer nuværende problemstilling.
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