webForumDet fria alternativet

Kundvagn i <select> form

ASP

12 svar · 248 visningar · startad av Thresher

Medlem sedan nov. 200315 inlägg
Frågan#1

Hej ,

Finns det någon som kan hjälpa mig att omvandla denna kundvagns kod från ett vanligt tabell format till <select> format likt det netonnet.se använder ? Eftersom denna kod ligger i en annan frame vore det bra också att den uppdateras automatiskt när man lägger till en vara.

<table width="100%" border="0" cellspacing="0" cellpadding="2">
  <tr> 
    <td colspan="3" class="headertext">Kundvagnen</td>
  </tr>
  <tr>
    <td width="3%" class="headertextalt">&nbsp;</td>
	<td width="7%" class="headertextalt">Antal</td>
    <td width="90%" class="headertextalt">Produkt</td>
  </tr>
	<%
	c = 0 
	total = 0
	sBuffer = ""
	
	Set rsQuery = Con.Execute("SELECT * FROM Products")
	While Not rsQuery.EOF
	Amount = GetByVareID(rsQuery("ID"))
	If Amount > 0 Then
	%>
  <tr>
    <td width="3%" class="normaltext" bgcolor="#eeeeee">&nbsp;</td>
	<td width="7%" class="normaltext" bgcolor="#eeeeee"><%= Amount %> st</td>
    <td width="90%" class="normaltext" bgcolor="#eeeeee"><a href="info.asp?catid=<%= rsQuery("CatID") %>&item=<%= rsQuery("ID") %>" target="main"><%= rsQuery("ProductName") %></a></td>
  </tr>
    <%
	c = c + 1
	total = Int(total) + (Amount * rsQuery("Price"))
	sBuffer = sBuffer & "- " & Amount & " pcs. " & rsQuery("Productname") & " a " & rsQuery("Price") & " " & SET_CURRENCY & VbCrlf
	End If
	rsQuery.MoveNext
	Wend
    %>
	<%
	If total = 0 Then
	%>
	<tr>
	<td class="normaltext">&nbsp;</td>
	<td class="normaltext" colspan="2">Kundvagnen &auml;r tom.</td>
	</tr>
	<%
	End If
	%>
	<tr>
	 <td class="normaltext">&nbsp;</td>
	 <td class="normaltext" align="right">Totalt</td>
	 <td class="normaltext"><%= SET_CURRENCY %> <%= Total %></td>
	</tr>
	<tr>
</table>
	<%
	sBuffer = sBuffer & VbCrlf & "Total: " & Total & " " & SET_CURRENCY
	%>
Medlem sedan nov. 200355 inlägg
#2

den i webshoppen som netonnet.se använder är gjord av minst 5-9 BRA asp-kodare säkerheten är gigantisk då man täppt igenom varenda bugg INTE fixat d det tycker jag är konstigt men det verkar vara bra!

Medlem sedan nov. 200355 inlägg
#3

men nu te det posten handlade om jag fattar inte hur du menar,
menar du att du vill ha så att alla saker som man köper kommer in i en <select> typ
<select>äpple</select> o shit elr????

Medlem sedan nov. 200315 inlägg
#4

Hej atra,

Ja, precis. Alltså som det är nu i scriptet du ser så hamnar dom ju i en tabell under varandra och i stället skulle jag vilja att dom hamnar i en <select> under varandra. + att denana automatiskt uppdaterar sig för varje vara som läggs till

Medlem sedan nov. 200355 inlägg
#5

använd <select><%=RecSet("vara")%></select>
och kopiera upp d!

Medlem sedan nov. 200315 inlägg
#6

Jag har fått det att funka nu, men har fortfarande lite problem jag skulle vilja ha hjälp med:

1. Att varukorgen uppdateras automatiskt när man lägger till en vara (köpet görs i annan frame). Varan läggs ju till nu , fast syns inte om man inte uppdaterar. Hur ska man göra?

2. När varukorgen är tom visas ju "Varukorgen är tom" fast ett steg ner i <select> boxen (= alltså första raden är blank). Var i koden ligger detta problem?

<select name="meny">
<option value=""><%
c = 0 
total = 0
sBuffer = ""

Set rsQuery = Con.Execute("SELECT * FROM Products")
While Not rsQuery.EOF
Amount = GetByVareID(rsQuery("ID"))
If Amount > 0 Then
%><%= Amount %> st <%= rsQuery("ProductName") %>
<option value=""><%
c = c + 1
total = Int(total) + (Amount * rsQuery("Price"))
sBuffer = sBuffer & "- " & Amount & " pcs. " & rsQuery("Productname") & " a " & rsQuery("Price") & " " & SET_CURRENCY & VbCrlf
End If
rsQuery.MoveNext
Wend
%>
<%
If total = 0 Then
%><option value="">Kundvagnen är tom.
<%
End If
%>
</select>

Totalt <%= Total %> <%= SET_CURRENCY %> 

<%
sBuffer = sBuffer & VbCrlf & "Total: " & Total & " " & SET_CURRENCY
%>
Medlem sedan dec. 20003 563 inlägg
#7
<%

response.write("<select name=meny>" & chr(10))
Set rs = Con.Execute("SELECT * FROM Products")

Dim totSum, totProd
totSum = 0
totProd = 0
if rs.eof then 
	response.write("<option value=''>Kundvagnen är tom</option>" & chr(10))
else
	do until rs.eof
		response.write("<option value=''>" & rs("ProductName") & "</option>" & chr(10))
		totSum = totSum - -cint(rs("price"))
		totProd = totProd - -1
		rs.MoveNext
	loop
end if

response.write("</select>" & chr(10))

response.write("Antal Produkter: " & totProd & "<br />")
response.write("Total Summa: " & formatcurrency(totSum, 2) & "<br />")

%>

Hmm. Jag tror inte det var såhär du skulle göra men jag hänger tyvärr inte med i din kod. Så kluddrigt. :l

Medlem sedan nov. 200315 inlägg
#8

Tack för hjälpen Cyprus,

En sak bara, nu är alla produkter som finns lagda i "kundvagnen" från början, vad ska man ändra i koden ?

Medlem sedan dec. 20003 563 inlägg
#9

Hur vill du ha det då? Hur vet du vad personen i fråga har i sin kundvagn?

Medlem sedan nov. 200315 inlägg
#10

Som koden är nu läggs alla varor som finns i databasen till i kundvagnen från början fastän jag tömmer den......

Medlem sedan dec. 20003 563 inlägg
#11

Jo. Men hur vet du vad användaren har i sin kundvagn. Hur lagrar du kundens valda produkter?

Medlem sedan nov. 200315 inlägg
#12

Förstår inte exakt hur du menar men man tömmer kundvagnen med hjälp av denna "string":

<%
Session("Orderlist") = ""
Response.Redirect "notice.asp?msg=Kundvagnen är tom.&link=default.asp"
%>
Medlem sedan dec. 20003 563 inlägg
#13

Accepterar ditt eget svar, som i sin tur är ett påstående?

Om du i Session("Orderlist") lägger in produkternas ID i detta format:
Session("Orderlist") = "5, 26, 493, 2, 25, 75, 21"
så kan koden se ut ungefär såhär.

<%

response.write("<select name=meny>" & chr(10))
Set rs = Con.Execute("SELECT * FROM Products [b]WHERE ID IN (" & Session("Orderlist") & ")[/b]")

Dim totSum, totProd
totSum = 0
totProd = 0
if rs.eof then 
	response.write("<option value=''>Kundvagnen är tom</option>" & chr(10))
else
	do until rs.eof
		response.write("<option value=''>" & rs("ProductName") & "</option>" & chr(10))
		totSum = totSum - -cint(rs("price"))
		totProd = totProd - -1
		rs.MoveNext
	loop
end if

response.write("</select>" & chr(10))

response.write("Antal Produkter: " & totProd & "<br />")
response.write("Total Summa: " & formatcurrency(totSum, 2) & "<br />")

%>
261 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)