Om jag vill skapa en shop och lägga till varor i en korg, hur gör man lättast då för att korgen skall komma ihåg vad man lagt till?
Alltså man måste kunna surfa runt lite på sidorna, komma tillbaka osv. lägga till och tabort innan man väljer att skicka.
Jag förstår att detta går att göra på flera sätt men det skulle vara fint med några idéer och tips.
Här är ett exempel:
http://ebberup.dk/eshop/Shopping/view_list.asp
Shopinglista?
19 svar · 668 visningar · startad av Jesper T
Ideér:
- använd cookies för att spara allt
- spaa i en databas med ett i och id_t sparar du i en cookie
- sök här för det har tagits upp många ggr...
Skulle kunna tänka mig detta senario:
- Du går in på shoppingsidan.
- Dina tidigare beställningar kommer upp i en array
- Du lägger till nya varor i samma array, ifrån en databas
- Priset räknas ihop när du läggertill en ny vara
- När du är klar trycker du på "köp/skicka"
- Klart
Alltså: När man lägger till nya varor så skall de läggas till i den befintliga beställningen. (Det skall se ut som att de läggs till, igentligen skall de bara läggas till ifrån en sessionsarray) Och när man klickar på "köp/skicka" så skall produkterna läggas till i databasen)
Puhh... *** va svårt det skall vara att beskriva något.
Är det någon som har ngt tips?
Är det överhuvud taget möjligt?
Några tips på hur man både arrayar ut det som redan ligger i databasen och det som man lägger till med "sessionen"?
Ok, jag börjar lite själv:
[red]
Set Conn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.Recordset")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("/links.mdb")
SQL = "SELECT id from frukter"
rs.Open SQL, Conn
rs.MoveFirst
[/red][blue]
Function GetItemParameters(iItemID)
Set Conn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.Recordset")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("/links.mdb")
strSQL = "SELECT * FROM Frukter WHERE Id ="& iItemID
rs.Open strSQL, Conn
rs.MoveFirst
Dim aParameters
aParameters = Array(rs("B_vitamin"), rs("Frukt"), rs("B_fett"))
GetItemParameters = aParameters
End Function
[/blue]
Det röda gör ju faktiskt ingen nytta i mitt script, men tar jag bort det så står det:
ADODB.Field error '80020009'
Object is no longer valid.
/frukt.asp, line 0
Konstigt tycker jag. Går det på något sätt att plocka bort det rödmarkerade ändå och göra om den undre delen?
*trött* *på morgonen*
Någon idé?
Att felmeddelandet pekar på rad 0 kan innebära att du har något konstigt i global.asa. Har du det?
Går det på något sätt att plocka bort det rödmarkerade ändå och göra om den undre delen?
Tja, använder du inte koden, så ska du ta bort den. Varför har du lagt den där? ;) Börja med att ta bort den onödiga koden. Du kan nog ta bort .movefirst också.
Prova att köra koden för sig själv och se om du kan ringa in felet. Är du säker på att det är den kodbit du postat som genererar felet? Jag kan inte se något fel.
mvh,
Det är det som är så sjukt, har jag den med så funkar det. Men jag kan anropa vilken databas som helst och köra movefirst och det funkar. Jag hittade exemplet i det danska eshopscriptet jag länkade till här:http://www.webforum.nu/showthread.php?s=&postid=475638#post475638
Plockar jag bort "den onödiga koden(som är nödvändig)- den röda" så får jag felet: Object is no longer valid
Skumt tycker jag!
Ja, det är möjligt att du kan ha med .movefirst, men det är onödigt.
- - - - -
Prova att lyfta ut skapande och förstörande av objekt ur funktionen. (Jag kan ändå inte förstå varför det blir fel.
Är det där all kod på sidan? Ingen include-fil eller annat?
Det är all kod.
Om jag kommenterar bort det röda(i tidigare inlägg) så står det:
ADODB.Field error '80020009'
Object is no longer valid.
/frukt.asp, line 0
om du bara kör funktionen för sig, fungerar det då?
körs den här sidan som include eller med server.execute från en annan sida?
- hur gör man det?
- Varken det ena eller det andra.
flytta funktionen till en egen asp-sida och kör dendär, utan all annan kod.
Hajjar inte till 100% hur jag skall göra, men samma felmeddelande kommer upp med endast detta på sidan:
Function GetItemParameters(iItemID)
iItemID = 13
Set Conn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.Recordset")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("/links.mdb")
strSQL = "SELECT * FROM Frukter WHERE Id ="& iItemID
rs.Open strSQL, Conn
rs.MoveFirst
Dim aParameters
aParameters = Array(rs("B_vitamin"), rs("Frukt"), rs("B_fett"))
GetItemParameters = aParameters
End Function
aParameters = GetItemParameters(Key)
response.write aParameters(1)
Prova detta:
Function GetItemParameters(iItemID)
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("/links.mdb")
strSQL = "SELECT B_vitamin, Frukt, B_fett FROM Frukter WHERE Id ="& iItemID
set rs = Conn.execute (strSQL)
Dim aParameters
if not rs.eof then
aParameters = Array(rs("B_vitamin"), rs("Frukt"), rs("B_fett"))
else
aParameters = Array("","","")
end if
GetItemParameters = aParameters
End Function
aParameters = GetItemParameters(13)
response.write aParameters(1)
Det känns lite illa att inte kontrollera om SQL-frågan gav något.
Mvh,
Samma fel :(
Hmmm....
Ett sista försök.
Function GetItemParameters(iItemID)
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("/links.mdb")
strSQL = "SELECT B_vitamin, Frukt, B_fett FROM Frukter WHERE Id ="& iItemID
set rs = Conn.execute (strSQL)
Dim aParameters
if not rs.eof then
strBvit = "" & rs("B_vitamin")
strFrukt = "" & rs("Frukt")
strFett = "" & rs("B_fett")
aParameters = Array(strBvit, strFrukt, strFett)
else
aParameters = Array("","","")
end if
GetItemParameters = aParameters
End Function
aParameters = GetItemParameters(13)
response.write aParameters(1)
Mvh,
Sådan tur att det funkade då när det nu var sista försöket!
Puss på dig!!! :)