29. maj 2006 - 18:52
Der er
11 kommentarer og 2 løsninger
Indsætte flere records via request.querystring
Hejsa, Jeg har en shoppingcart, hvor man kan købe flere varianter på én gang. Jeg sender data via en form med følgende data: request.form("VID") vises: 2,4,5 request.form("price") vises: 5,9,2 request.form("color") vises: 5,8,3 Hvorledes kan jeg indsætte disse x antal informationer i nedenstående funktion?? F.eks. i ovenstående har man valgt 3 forskellinge produkter... ----------------------------------------- Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open MM_webdatabase_STRING CPvariation = ?? VID CPcolor = ?? color CPhowmany = ?? price CPuniqueid = Session.SessionId & replace(Request.ServerVariables("remote_addr"), ".", "") CPdate = now() strSql= "INSERT INTO procart (CPvariation, CPcolor, CPhowmany, CPuniqueid, CPdate) VALUES ('" & CPvariation & "', '" & CPcolor & "', '" & CPhowmany & "', '" & CPuniqueid & "', '" & CPdate & "')" Conn.Execute(strSql) Conn.Close
Annonceindlæg fra Lenovo
Hej, tak for det svar! Men hvordan får jeg så de 3 data samlet?? er lidt lost med disse løkker :0 Dim variations, howmany, thecolor Dim variations, howmany, thecolor variations = Split(request.form("VID"),",") ??
Forklaring på split/array (som også er beskrevet på
http://www.html.dk/tutorials/asp/lektion8.asp ):
frugter = "æbler,pærer,bananer,appelsiner,citroner"
frugter = split(strengen, ",")
resultatet:
frugter(0) = æbler
frugter(1) = pærer
frugter(2) = bananer
frugter(3) = appelsiner
frugter(4) = citroner
Loop fra 0 og til antallet af elementer i arrayen frugter:
for i = 0 to ubound(frugter)
response.write "frugt: " & frugter(i) & "<br>"
next
Det du skal gøre, er at erstatte værdien af f.eks. CPvariation, så den er opdateret:
for...
CPvariation = frugter(i)
insert(...)
execute
next
Jeg prøver lige at lave noget kode til dig..
Ok tak skal du have, jeg tror jeg er med hvordan man gør det med én request.form. Men er dog desværre helt blank med 3!
Sådan: Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open MM_webdatabase_STRING for i = 0 to ubound(vid) CPvariation = vid(i) CPcolor = color(i) CPhowmany = price(i) CPuniqueid = Session.SessionId & replace(Request.ServerVariables("remote_addr"), ".", "") CPdate = now() strSql = "INSERT INTO procart (CPvariation, CPcolor, CPhowmany, CPuniqueid, CPdate) VALUES ('" & CPvariation & "', '" & CPcolor & "', '" & CPhowmany & "', '" & CPuniqueid & "', '" & CPdate & "')" Conn.Execute(strSql) 'response.write strSql & "<br>" next Conn.Close Jeg går ud fra, at du ved hvordan du får værdierne ind i variablerne "vid", "price" og "color".. :-)
Tak for eksemplet, jeg tror dog desværre jeg stadig er lidt forvirret. jeg får denne fejlmedelse med følgende: Microsoft VBScript runtime error '800a000d' Type mismatch: 'ubound' /orders/addtoorder.asp, line 21 --------------------------------------------- <% dim vid, color, price vid = request.form("VID") price = request.form("howmany") color = request.form("color") Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open MM_webdatabase_STRING for i = 0 to ubound(vid) CPvariation = vid(i) CPcolor = color(i) CPhowmany = price(i) CPuniqueid = Session.SessionId & replace(Request.ServerVariables("remote_addr"), ".", "") CPdate = now() strSql = "INSERT INTO procart (CPvariation, CPcolor, CPhowmany, CPuniqueid, CPdate) VALUES ('" & CPvariation & "', '" & CPcolor & "', '" & CPhowmany & "', '" & CPuniqueid & "', '" & CPdate & "')" Conn.Execute(strSql) 'response.write strSql & "<br>" next Conn.Close %>
Du har ikke splittet variablerne: indlæs variablerne: vid = request.form("VID") price = request.form("howmany") color = request.form("color") og split dem op ved ",": vid = split(vid, ",") price = split(price, ",") color = split(color, ",") Nu kan du bruge dem i for-next løkken.
Man kan også gøre det direkte: vid = split(request.form("VID"), ",") price = split(request.form("howmany"), ",") color = split(request.form("color"), ",")
Helt perfekt nu virker det helt kanon!! tusinde tak for hjælpen, det kunne jeg have brugt hele ugen på :)
Hehehe.
Jeg vil anbefale at du læser (og forstår) lektionerne på
http://www.html.dk/tutorials/asp/ :-)
Efterlign de eksempler der findes i lektionerne, og ændrer på værdierne og parameterne.. så lærer du hvordan det virker.
- Takker for points :-)
Lige et spørgsmål... hvorfor har du angivet titlen "Indsætte flere records via request.querystring"? Det er en form du arbejder med, og ikke querystring.. :-)
Ja jeg vil helt sikker kigge noget mere på de lektioner. Ja omkring overskriften, gik det op for mig da jeg klikkede på gem. der skulle have stået form!!
Kurser inden for grundlæggende programmering