webForumDet fria alternativet

Kundvagn

ASPur ASP

5 svar · 304 visningar · startad av devotion

devotionMedlem sedan jan. 20013 582 inlägg
#1

:) :)
Hej!

Försöker göra en kundvagn...

Har följande kod för att skicka infon till "kundvagnen"

   Response.Write "<td class=""itabell""><a href=""#"" onclick=""location.href='bottomFrame.asp?eNumber=" & objPricesDict.Item("eNumber") & "&antal=' + document.getElementById('antal').value;"" target=""bottomFrame""><img src=""../Images/kundvagn.gif"" alt=""Klicka här för att lägga till artikeln!"" width=""31"" height=""17"" border=""0""></a></td>"

Sidan ligger i ett ramverk med leftFrame, mainFrame och bottomFrame.

När jag klickar på länken så vill jag inte att mainFrame (som heter searchResult.asp) ska laddas om som det gör nu utan jag vill att infon skickas till "bottomFrame" som är kundvagnen. Som det är nu laddas "serachResult.asp" i den framen.

Jag får inte till det..... Hjälp

Nästa problem...

Jag har lånat ihop till en kundvagn med hjälp av följande script:

<%
Dim objConn, objRS

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=IntranetSydostel"
objConn.Open

response.write("<select name=meny>" & chr(10))
Set objRS = objConn.Execute("SELECT * FROM tblCart WHERE userID IN (" & Session("userId") & ")")

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

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

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

objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing

%>

Hur gör jag för att ta emot informationen som skickas från searchResult.asp och uppdatera kundvagnen?

Mvh

@ndersMedlem sedan juni 200032 969 inlägg
#2
 onclick=""[b]parent.frames['bottomFrame'].location.href=...
eNumber = Request.Querystring("eNumber")
antal = Request.Querystring("antal")
strSQL = "INSERT INTO tblCart (eNumber, antal, userID) VALUES ('" & eNumber & "', " & antal & ", " & session("userId") & ")"
objConn.execute strSQL,,128

Om jag var du skulle jag nog efter detta köra en response.redirect till kundvagnen utan querystrings, för att undvika att samma sak läggs till i kundvagnen av misstag vid back/forward i webbläsaren, eller en refresh.

mvh

devotionMedlem sedan jan. 20013 582 inlägg
#3

Hej!

Om jag var du skulle jag nog efter detta köra en response.redirect till kundvagnen utan querystrings, för att undvika att samma sak läggs till i kundvagnen av misstag vid back/forward i webbläsaren, eller en refresh.

Hur menar du? Är inte så hemma på Response.redirect...

Mvh

devotionMedlem sedan jan. 20013 582 inlägg
#4

:) :)

Nu har jag följande kod...

<%
Dim objConn, objRS

eNumber = Request.Querystring("eNumber")
antal = Request.Querystring("antal")

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=IntranetSydostel"
objConn.Open

strSQL = "INSERT INTO tblCart (eNumber, antal, userID) VALUES ('" & eNumber & "', " & antal & ", " & session("userId") & ")"
objConn.execute strSQL,,128

response.write("<select name=meny>" & chr(10))
    strSQL = "SELECT * FROM tblCart WHERE userId = '" & Session("userId") & "'"
    Set objRS = objConn.Execute(strSQL)

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

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

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

objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing

%>

Jag får då ett felmeddelande att det är fel i "INSERT INTO" som jag tror beror på att querystringarna är " tomma. Men hur gör jag för att undvika det???

Och den här raden ger oxå felmeddelande:

   Response.Write "<td class=""itabell""><a href=""#"" onclick=""[b]parent.frames['bottomFrame'].location.href='bottomFrame.asp?eNumber=" & objPricesDict.Item("eNumber") & "&antal=' + document.getElementById('antal').value;""><img src=""../Images/kundvagn.gif"" alt=""Klicka här för att lägga till artikeln!"" width=""31"" height=""17"" border=""0""></a></td>"

Fel: ';' Förväntas

Mvh

@ndersMedlem sedan juni 200032 969 inlägg
#5

Oki!

  1. Se till att bara köra insert-frågan när du har värden att stoppa in:
if eNumber <> "" and antal<>"" then 
     strSQL = "INSERT INTO tblCart (eNumber, antal, userID) VALUES ('" & eNumber & "', " & antal & ", " & session("userId") & ")"
     objConn.execute strSQL,,128
end if
  1. skulle inte vara i koden, utan det var jag som skulle fetmarkera det jag lagt till i inlägget. Så här ska det vara:
Response.Write "<td class=""itabell""><a href=""#"" onclick=""[b]parent.frames['bottomFrame'].[/b]location.href='bottomFrame.asp?eNumber=" & objPricesDict.Item("eNumber") & "&antal=' + document.getElementById('antal').value;""><img src=""../Images/kundvagn.gif"" alt=""Klicka här för att lägga till artikeln!"" width=""31"" height=""17"" border=""0""></a></td>"
  1. Släng in en response.redirect efter insertandet:
Response.redirect "bottomFrame.asp"

Glöm inte bort heller att skydda dig mot SQL-injection. :)

Mvh

devotionMedlem sedan jan. 20013 582 inlägg
#6

:) :) :) :)

Tack för det....

Ska även lägga till skydd mot SQL-injections

Mvh

135 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)