Ostoskori ongelma

Olen tehnyt ostoskorin javaScriptillä. Minulla on siinä eri tuoteryhmiä, joissa jokaisella on oma sivunsa, nämä tuoteryhmäsivut olen tehnyt php:llä ja mySql:llä käyttäen tietokantaa.Tässä ostoskorissani tiedot haetaan tietokannasta. Ongelma on siinä, että kun lisään eri sivuilta tuotteita ostoskoriin, niin saan vain yhden sivun tuotteet näkymään ostoskorissa eli ostoskori toimii vain yhdelle sivulle. Kun lisään jonkun toisen sivun tuotteen ostoskoriin, niin ostoskori alkaa laskemaan uudestaan ja poistaa automaattisesti edellisen sivun tuotteet siitä. Saan vain toimimaan ostoskorin siten, että laitan kaikki tuotteet samalle sivulle, jota en halua tehdä. Joten osaisiko kukaan auttaa tässä?
4577
Äänestä

Muut lukivat myös

Vastaukset 4

Vanhimmat

Sessioon tai sinne mysql-kantaan.

Sessio pitää aloittaa .php-skriptissä ennen kuin mitään tulostetaan käyttäjälle.





Jee!





Sitten seuraavalla sivulla otat tallessa olevan session ja sieltä löytyy edelliset tuotteet.

Äänestä
  • *Sessioon tai sinne mysql-kantaan.*

    Mielummin sessioon tai kekseihin, ellei halua ominaisuutta, että voi jatkaa myöhemmin ostoksien tekoa kun kirjaantuu tunnuksilla. Sessiot ja keksit on tarkoitettu väliaikasille tiedoille.


    *session_register("ostoskori").....*

    Nykyään suositellaan käytettäväs $_SESSION['ostoskori']

    Ja sinun toteutuksessa tulee ongelmia useamman saman tavaran lisäämisen kanssa sekä poistamisessa ja muokkaamisessa.

    Esim lisäät ostoskoriin 3 * vaihdelaatikko, mutta tulet toisiin aatoksiin ja haluatkin vain kaksi, tällöin joudut laskemaan jo olevat vaihdelaatikot ja sitten poistamaan yhden vaihdelaatikon.


    Sen sijaan järkevämpi tehdä kolmiulotteinen taulukko, vai olikos noi kaksulottaisia (samapa tuo).

    $_SESSION['ostoskori']['vaihdelaatikko'} = 3(tuotteen määrä);

    Tällöin voit suoraan lisätä tai poistaa halutun määrän tuotteita.

    Ja jos kerralla halutaan lisätä vaikkapa kolme samaa tuotetta niin se onnistuu helposti.

    $_SESSION['ostoskori']['vaihdelaatikko'] = 3;

    Eikä

    $_SESSION['ostoskori']['vaihdelaatikko'] = 3;

    Joka tuhoaisi jo olemassa olevan määrän.

    Tuotteen nimen tilalla kannattaa käyttää tuotteen ID numeroa, tällöin sekaantumisen vaaraa ei ole, jos tuotteita paljon myynnissä. Tuotteen nimen voi myös tallentaa sessioon tai noutaa kannasta kun sitä tilausvahvistuksessa/muokkaamisessa tarvitaan.


    *$HTTP_SESSION_VARS*

    Register globall nykyään oletuksena off joten toi ei toimine oletusasetuksilla. Siksi haetaan tiedot $_SESSION['xxx']

    Äänestä

  • -------- kirjoitti:

    *Sessioon tai sinne mysql-kantaan.*

    Mielummin sessioon tai kekseihin, ellei halua ominaisuutta, että voi jatkaa myöhemmin ostoksien tekoa kun kirjaantuu tunnuksilla. Sessiot ja keksit on tarkoitettu väliaikasille tiedoille.


    *session_register("ostoskori").....*

    Nykyään suositellaan käytettäväs $_SESSION['ostoskori']

    Ja sinun toteutuksessa tulee ongelmia useamman saman tavaran lisäämisen kanssa sekä poistamisessa ja muokkaamisessa.

    Esim lisäät ostoskoriin 3 * vaihdelaatikko, mutta tulet toisiin aatoksiin ja haluatkin vain kaksi, tällöin joudut laskemaan jo olevat vaihdelaatikot ja sitten poistamaan yhden vaihdelaatikon.


    Sen sijaan järkevämpi tehdä kolmiulotteinen taulukko, vai olikos noi kaksulottaisia (samapa tuo).

    $_SESSION['ostoskori']['vaihdelaatikko'} = 3(tuotteen määrä);

    Tällöin voit suoraan lisätä tai poistaa halutun määrän tuotteita.

    Ja jos kerralla halutaan lisätä vaikkapa kolme samaa tuotetta niin se onnistuu helposti.

    $_SESSION['ostoskori']['vaihdelaatikko'] = 3;

    Eikä

    $_SESSION['ostoskori']['vaihdelaatikko'] = 3;

    Joka tuhoaisi jo olemassa olevan määrän.

    Tuotteen nimen tilalla kannattaa käyttää tuotteen ID numeroa, tällöin sekaantumisen vaaraa ei ole, jos tuotteita paljon myynnissä. Tuotteen nimen voi myös tallentaa sessioon tai noutaa kannasta kun sitä tilausvahvistuksessa/muokkaamisessa tarvitaan.


    *$HTTP_SESSION_VARS*

    Register globall nykyään oletuksena off joten toi ei toimine oletusasetuksilla. Siksi haetaan tiedot $_SESSION['xxx']

    Sessionin käyttäminen ei onnistunut antaa tällaisen
    virheilmoituksen:
    Warning: Cannot modify header information - headers already sent by (output started at d:\apache\htdocs\tietokanta\tilaus1.php:8)
    Joten mitäkähän tämän kanssa voisi sitten tehdä?

    Äänestä

  • Auttaisiko joku? kirjoitti:

    Sessionin käyttäminen ei onnistunut antaa tällaisen
    virheilmoituksen:
    Warning: Cannot modify header information - headers already sent by (output started at d:\apache\htdocs\tietokanta\tilaus1.php:8)
    Joten mitäkähän tämän kanssa voisi sitten tehdä?

    session_start ennen HTML-tegeja, kuten pirun esimerkissä.

    Äänestä

Kommentoi aloitusta


Auttaisiko joku? kirjoitti:

Olen tehnyt ostoskorin javaScriptillä. Minulla on siinä eri tuoteryhmiä, joissa jokaisella on oma sivunsa, nämä tuoteryhmäsivut olen tehnyt php:llä ja mySql:llä käyttäen tietokantaa.Tässä ostoskorissani tiedot haetaan tietokannasta. Ongelma on siinä, että kun lisään eri sivuilta tuotteita ostoskoriin, niin saan vain yhden sivun tuotteet näkymään ostoskorissa eli ostoskori toimii vain yhdelle sivulle. Kun lisään jonkun toisen sivun tuotteen ostoskoriin, niin ostoskori alkaa laskemaan uudestaan ja poistaa automaattisesti edellisen sivun tuotteet siitä. Saan vain toimimaan ostoskorin siten, että laitan kaikki tuotteet samalle sivulle, jota en halua tehdä. Joten osaisiko kukaan auttaa tässä?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu