webForumDet fria alternativet

Shopinglista?

19 svar · 668 visningar · startad av Jesper T

Jesper TMedlem sedan nov. 20017 144 inlägg
#1

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

PoffeMedlem sedan apr. 20022 743 inlägg
#2

Ideér:

  1. använd cookies för att spara allt
  2. spaa i en databas med ett i och id_t sparar du i en cookie
  3. sök här för det har tagits upp många ggr...
Jesper TMedlem sedan nov. 20017 144 inlägg
#3

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?

Jesper TMedlem sedan nov. 20017 144 inlägg
#4

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"?

Jesper TMedlem sedan nov. 20017 144 inlägg
#5

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*

Jesper TMedlem sedan nov. 20017 144 inlägg
#6

Någon idé?

@ndersMedlem sedan juni 200032 969 inlägg
#7

Att felmeddelandet pekar på rad 0 kan innebära att du har något konstigt i global.asa. Har du det?

Jesper TMedlem sedan nov. 20017 144 inlägg
#8

Har ingen global.asa
Hela koden ligger här.

@ndersMedlem sedan juni 200032 969 inlägg
#9

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,

Jesper TMedlem sedan nov. 20017 144 inlägg
#10

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!

@ndersMedlem sedan juni 200032 969 inlägg
#11

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?

Jesper TMedlem sedan nov. 20017 144 inlägg
#12

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

@ndersMedlem sedan juni 200032 969 inlägg
#13

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?

Jesper TMedlem sedan nov. 20017 144 inlägg
#14
  1. hur gör man det?
  2. Varken det ena eller det andra.
@ndersMedlem sedan juni 200032 969 inlägg
#15

flytta funktionen till en egen asp-sida och kör dendär, utan all annan kod.

Jesper TMedlem sedan nov. 20017 144 inlägg
#16

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)
@ndersMedlem sedan juni 200032 969 inlägg
#17

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,

Jesper TMedlem sedan nov. 20017 144 inlägg
#18

Samma fel :(

@ndersMedlem sedan juni 200032 969 inlägg
#19

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,

Jesper TMedlem sedan nov. 20017 144 inlägg
#20

Sådan tur att det funkade då när det nu var sista försöket!
Puss på dig!!!
:)

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