webForumDet fria alternativet

Lägga till i webshop...

ASP

15 svar · 526 visningar · startad av crisse6

Medlem sedan dec. 20002 526 inlägg
Frågan#1

Tjena... har lite problem med min webshop jag bygger. Den vill inte lägga till på samma artikelnummer om man shoppar av samma produkt vid samma besök... förstår ni? ser ni nåt fel? får inga felmess, men det lägger sig liksom inte "ihop" utan som egen rad om man te x först köper en Nokia 6110, och sen en till Nokia 6110 under samma besök.. då blir det

1st - 300 kr - Nokia 6110
1st - 300 kr - Nokia 6110 :(

<% Session("From") = "laggtill" %>
<% Dim  Laggtill, Marke, Antal_poster, Sessionen, Antal, Besk, ArtNr, DB, RecSet

 'Denna kod kollar så ett giltigt värde finns i antal fältet.
'On Error Resume Next
Antal = Cint(Request.QueryString("Antal"))

If Antal = "" Then
Response.Redirect "error.asp"
ElseIf Antal < 1 Or Antal > 9999 Then
Response.Redirect "error.asp"
End If

ArtNr = Cint(Request.QueryString("ArtNr"))
Besk = Cstr(Request.QueryString("Besk"))
Marke = Cstr(Request.QueryString("Marke"))
Pris = Cint(Request.QueryString("Pris"))
Rabatt = Cint(Request.querystring("rabatt"))
Sessionen = Session.SessionID
'response.write "Värden från sortiment.asp:<br>"
'response.write ArtNr&"<br>"&Besk&"<br>"&Marke&"<br>"&Pris&"<br>"&sessionen

strSQL = "SELECT * FROM Temptab WHERE SID = " & Sessionen & " AND AID = '" & ArtNr &"'"
set objRS = objConn.execute(strSQL)

Antal_Poster = objRS.RecordCount

'Om det ej fanns en vara med detta artikelnr redan :
	If Antal_Poster < 1 Then

strAdd = "Insert into tempTab (SID, AID, antal, beskrivning, pris, rabatt) "&_
			"Values ("&sessionen&",'"&ArtNr&"',"&Antal&",'"&beskrivning&"',"&pris&","&rabatt&")"
objConn.execute strAdd,,128
                                                                
	Else

'på fältet antal :

NyttAntal = Antal + objRS("Antal")
strUpd = "Update tempTab Set antal = NyttAntal Where SID = "&sessionen&""
objConn.execute strUpd,,128

End If 
objRS.close
objConn.Close

'Här hoppar vi vidare till kundvagn_visa.asp för att se innehållet i kundvagnen igen.

      ' Skickar även med lite info om varan som vi just lagt till, via querystring.

Response.Redirect "kundvagn_visa.asp?Status=laggtill&Besk=" & Besk & "&Antal=" & Antal %>
Medlem sedan nov. 20017 144 inlägg
#2

Skriv ut frågan och kolla vad du får då.
Kan "AID" innehålla strängar?

Kolla på denna länk.
http://www.webforum.nu/showthread.php?s=&postid=994544#post994544

Så skall du se att du inte behöver göra någon select öht.
Alltså: Försök uppdatera frågan, görs ingen uppdatering -> lägg till en ny post.

Medlem sedan dec. 20002 526 inlägg
#3

we cant go on with suspicious minds.... asså, fan va bra det blev på ett sätt. men något riktigt skumt nu, lägger jag till 1 produkt, och sen 1 till av samma så funkar det utmärkt. Dock när jag återigen lägger på 1 av samma så blir det plötsligt en summa av 4 produkter, inte 3, va i? Vad är det här? Ska det vara så här? Ska de det? Ha? Ha?

Medlem sedan dec. 20002 526 inlägg
#4

vill också påpeka nu att tar jag någon av de andra produkterna så blev plötsligt 4 till 8, men den uppdaterar bara den produkt man la in först i kundvagnen, hmmm.... va?

Medlem sedan juni 200032 967 inlägg
#5

Hur ser koden ut nu då?

Medlem sedan mars 20015 287 inlägg
#6

När du ska uppdatera måste du även ta med artikelnummret.

strUpd = "Update tempTab Set antal = NyttAntal WHERE SID = " & Sessionen & " AND AID = '" & ArtNr &"'"

Hm... den sista kodraden, din redirect, den skickar väl inte användaren till samma sida igen? Då blir det ju en loop.

Medlem sedan dec. 20002 526 inlägg
#7

Hmmmm...spelade ingen roll ändå!
efter man lagt till 2 produkter och sen lägger till ytterligare 1 produkter av samma så blir det 4 av den produkten. fel.
sen också, börjar jag shoppa av en annan produkt så ändras priset på den andra produkten till det man shoppar nu... ej bra! Nåt skumt!

<!--#include file="dbkoppling.asp"-->
<% Session("From") = "laggtill" %>
<% Dim  Laggtill, Marke, Antal_poster, Sessionen, Antal, Besk, ArtNr, DB, RecSet

 'Denna kod kollar så ett giltigt värde finns i antal fältet.
'On Error Resume Next
Antal = Cint(Request.QueryString("Antal"))

If Antal = "" Then
Response.Redirect "error.asp"
ElseIf Antal < 1 Or Antal > 9999 Then
Response.Redirect "error.asp"
End If

ArtNr = Cint(Request.QueryString("ArtNr"))
Besk = Cstr(Request.QueryString("Besk"))
Marke = Cstr(Request.QueryString("Marke"))
Pris = Cint(Request.QueryString("Pris"))
Rabatt = Cint(Request.querystring("rabatt"))
Sessionen = Session.SessionID
'response.write "Värden från sortiment.asp:<br>"
'response.write ArtNr&"<br>"&Besk&"<br>"&Marke&"<br>"&Pris&"<br>"&sessionen

strSQL = "UPDATE tempTab Set antal = antal+Antal Where SID = "&sessionen&" AND AID = '"& ArtNr &"'"
objConn.execute strSQL, rowsaffected, 128

if rowsaffected = 0 then
     strSQL = "INSERT into tempTab (SID, AID, antal, beskrivning, pris, rabatt) "&_
	 			"Values ("&sessionen&",'"&ArtNr&"',"&Antal&",'"&besk&"',"&pris&","&rabatt&")"
     objConn.Execute strSQL,,128
end if

objConn.Close

'Här hoppar vi vidare till kundvagn_visa.asp för att se innehållet i kundvagnen igen.

      ' Skickar även med lite info om varan som vi just lagt till, via querystring.

Response.Redirect "kundvagn_visa.asp?Status=laggtill&Besk=" & Besk & "&Antal=" & Antal %>

Och nej, du skickas till annan sida så det är ingen loop.

Medlem sedan juni 20003 076 inlägg
#8

Det har inte med ditt problem att göra men ett litet tips bara:
Använd inte Cint direkt på en querystring, då användaren lätt kan förstöra körningen av sidan.
Ex. om användaren skriver ArtNr=123abc i adressfältet så kraschar sidan!
Använd t.ex. isNumeric först innan du typomvandlar.
Sen är Cstr helt onöding på en querystring då allt i querystringen är strängar! :)

Medlem sedan dec. 20002 526 inlägg
#9

okej.. thanks.

Några tips på hur jag ska lösa mitt problem?

Medlem sedan juni 20003 076 inlägg
#10

det är möjligtvis inte så att du har en submitknapp med ett onclick-kommando på kundvagnssidan?
ex:

<form>
...

     <input type="submit" name="submit" onclick="this.form.submit();">
</form>

för då råkar man ibland utför dubbelpostningar.

Medlem sedan dec. 20002 526 inlägg
#11

Nej, helt vanlig submit är det. Fattar inte varför den dubblar så?

Medlem sedan jan. 2005296 inlägg
#12

jag har faktist samma problem att om man köper 2 av samma så lägger där sig 2 st och dom lägger sig inte under samma artikelnummer, men däremot så har jag att man kan ändra antal, går man in i varukorgen och ändrar istället att man ska ha 3 av samma så lägger dom sig på samma, men inte om man trycker på köp knappen flera gånger, men jag ska kolla upp de och skriver till dig om jag kommer på de, det andra med att när du börjar handla en annan produkt så försvinner den första du tryckte på, det beror på att sessionen laddas om, hade precis samma problem och fick lägga min session i en frame för att den inte skulle ladda om alls så informationen stannar, testa med det och säg sen vilket resultat du fick.

Ha de ///Darek

Medlem sedan dec. 20002 526 inlägg
#13

ah... okej i see... Men ändå, du menar att den läser från sessionen när kundvagnen visas, men det ligger egentligen rätt i databasen? Right?

Medlem sedan jan. 2005296 inlägg
#14

om det skulle vara fel i databasen skulle den inte vissa informationen från databasen, för de märkte jag genom att jag råka sätta ett , (komma) istället för en . (punkt) för de såg jag inte priset när jag la till en grej i varukorgen och i kassan.

Du kommer ju in på sidan där produkten finns, då startas en session du trycker på köp och en produkt läggs in i sessionen, eftersom du har lagt sessionen på själva sidan för produkten så när du lämnar sidan så stängs sessionen ner, sen kommer du in på en ny produkt sida då öppnas ju en ny session, och det är därför den lägger en annan produkt, jag hade samma problem, därför la jag den sen i en frame som du inte använder, då gick man in på sidan, sessionen startas sen så ligger den kvar hela tiden, för har man frames så updaterar den endast framen men inte hela sidan, så den framen sessionen ligger i rörs inte och kan då ligga kvar och läsa hela tiden och komma ihåg allt, tills du då stänger ner sidan, eller trycker på updatera knappen. men funkar nu inte det som jag har sagt nu då måste de va något fel på själva koddningen..

Medlem sedan jan. 2005296 inlägg
#15

jag har kollat lite på sidan och så men inte kommit fram till något än, men jag sitter och försöker och försöker så funkar de inte, sen går jag ifrån de och skiter i de sen brukar jag komma på de helt plötsligt :P men jag ska fundera på de och se om de löser sig, annars e det ju inte hela världen, jag håller med att det är snyggare när den ligger i samma men ändå, det funkar iallafall :P
Men men, jag ska se hur jag ska lösa de, kommer jag på lösningen så skickar jag den till dig :P hoppas detta hjälper dig lite :P

Medlem sedan dec. 20002 526 inlägg
#16

yes :P

270 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
144 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)