I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Hør ... kan du ikke bare komme med et eksempel der bruger cookies eller sessions ... e.lign .. det kan da ikke være så svært at lave noget der bare \"gemmer\" nogle oplysninger i en kurv ... er det ?
...et fuldt udbygget og virkende indkøbskurv eksempel har jeg ikke tid til at lave nu - jeg er på arbejde.
Men prøv at lave en session variabel som oven for - og så lav en response.write session(\"Varer\") & \"<br>\" & session(\"antal\"). Så kan du se hvad den indeholder. Hvis du har 2 forskellige varer i din kurv så vil den fx udskrive
|Golfkøller|Golfkugler |2|80
hvis der er lagt 2 golfkøller og 80 golfkugler i indkøbskurven. Når så varerne skal gemmes i db - så skal der bare loopes igennem de 2 arrays
for i = 0 to Ubound(arrVarerIKurven) sSql = \"INSERT INTO kurv (vare,antal) VALUES (\'\"&arrVarerIkurven(i)&\"\',\"&arrAntalAfVaren(i)&\")\" Conn.execute sSql next
Nuno >> Det virker fint indtil at jeg skal gemme det, så giver den en fejl lige meget hvad jeg gør. Kan du ikke lige skrive om det skal være i en fil eller om det skal være i flere filer???? Og hvordan det så skal laves.
for i = 0 to Ubound(arrVarerIKurven) SQL = \"INSERT INTO Ordlin(Varenavn,Antal,Farve,Varenummer) values (\'\"&arrVarerIkurven(i)&\"\',\'\"&arrAntalAfVaren(i)&\"\',\'\"&arrFarveAfVaren(i)&\"\',\'\"&arrVarenrAfVaren(i)&\"\');\" Conn.execute( SQL ) next %>
Her er den fejl jeg får: [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
SQL = \"INSERT INTO Ordlin(Varenavn,Antal,Farve,Varenummer) values (\'\"&arrVarerIkurven(i)&\"\',\"&arrAntalAfVaren(i)&\",\'\"&arrFarveAfVaren(i)&\"\',\"&arrVarenrAfVaren(i)&\");\"
hvis dine datatyper i db er tekst for varenavn og farve - og numerisk (langt heltal sandssynligvis) for antal og varenummer - så skal sql-sætningen være som ovenfor
Så virker det fint nok, så det må vel være her: arrVarerIKurven = Split(Session(\"Varer\"),\"<br>\") arrAntalAfVaren = Split(Session(\"Antal\"),\"<br>\") arrFarveAfVaren = Split(Session(\"Farve\"),\"<br>\") arrVarenrAfVaren = Split(Session(\"Varenr\"),\"<br>\") arrLevAfVaren = Split(Session(\"Lev\"),\"<br>\")
hmm det er vist noget med at man har begrænsede muligheder for at manipulere med session variable
prøv at lave dem om til strenge hvergang du skal \"arbejde med dem\"
dvs. når du tilføjer varer til kurven <% sVarerIKurven = Session(\"Varer\") %> [kode her hvor du manipulerer - dvs. tilføjer til kurven osv. fx: <% sVarerIKurven = sVarerIKurven & \"|\" & request.form(\"vare\") %>]
og efter du har manipuleret - så skal de ny data tilbage i session variablen: <% Session(\"Varer\") = sVarerIKurven %>
Derefter når du skal \"smide\" dine data i databasen - så igen først lave session variablene om til strenge før du konverterer til arrays
<% sVarer = Session(\"Varer\")
arrVarerIKurven = Split(sVarer,\"|\") %>
og samme princip med de 4 andre session variable.
(jeg har brugt | som delimiter til at splitte på - men du kan sagtens bruge <br> du skal bare være sikker på at det er et tegn/tegnkombination, som ikke kan forekomme i fx varenavn el. lign.)
for i = Lbound(arrVarerIKurven) to Ubound(arrVarerIKurven) SQL = \"INSERT INTO Ordlin(Varenavn,Antal,Farve,Varenummer) values (\'\"&arrVarerIkurven(i)&\"\',\"&arrAntalAfVaren(i)&\",\"&arrFarveAfVaren(i)&\",\"&arrVarenrAfVaren(i)&\");\"
Hvis jeg udskriver min sql kommer der dette: INSERT INTO Ordlin(Varenavn,Antal,Farve,Varenummer) values (\'\',,,);
så skal du lave noget strengemanipulering. Således at der hvor du skriver listen ud - og giver muligheden for at slette skal der være fx et hidden form felt eller en værdi hæftet på en querystring i et link. Denne værdi skal være det index i arrayet som skal slettes fx hvis sVarer ser således ud:
\"vare1<br>vare2<br>vare3<br>\"
så vil vare1 være i index 0 (eller 1 jf. http://www.eksperten.dk/spm/78505) og vare2 i index 1 osv. i strengen. Der hvor du giver mulighed for at slette skal altså tilføjes en værdi, som fortæller netop HVILKET af disse index i strengen der skal fjernes.
Derefter, hvis det bliver index 2 der skal væk (jeg antager det er vare2) - skal du lave et tjek på hvornår den første <br> optræder i strengen - fjerne fra positionen LIGE efter - og frem til og med det næste <br>
(det er NU det bl.a. er nemmere at bruge | som delimiter i din streng)
Hvis det er index 1 der skal væk (vare1) - så skal du fjerne fra pos 1 til og med det første tilfælde af <br> i din streng og så fremdeles.
du skal selvfølgelig kalde den funktion på de 5 strenge sVarer, sAntal osv. som udgør det for din indkøbskurv. Så fjerner den også de index i strengene /arrays\'ne som passer sammen.
ok - det den funktion jeg har lavet - den fjerner EEN vare ad gangen - og kun een.
hvis du vil fjerne 10 varer - så skal du kalde den 10 gange med de indexes som de pågældende varer har.
Hvis du vil tømme hele kurven - så sætter du bare
sVarer = \"\" Session(\"Varer\") = \"\"
Hvis der er 10 stk. af den ene vare i kurven - vil disse 10 også blive fjernet - da du jo skal kalde RemoveFromBasket på alle dine \"indkøbskurv-variable\" sAntal, sFarve, sVarenr osv.
Jeg havde et eksempel liggende på min computer som jeg brugte
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.