Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Carrello: opzioni multiple

    Creando una serie di classi per formare un carrello funzionante mi sono imbattuto in un dilemma.
    Quando qualcuno compra un oggetto viene aggiunto nel carrello ma se questo oggetto ha degli accessori o caratteristiche diverse va segnato. Se poi aggiungi un altro oggetto uguale va ad aggiungersi al primo mentre se viene cambiata anche solo una caratteristica si crea un nuovo oggetto.
    Codeigniter crea un codice univoco per ogni oggetto (e non ho idea di come funzioni) ma visto che non lo uso mi ha messo la pulce nell'orecchio.
    Come posso fare per avere tanti oggetti cumulabili se uguali, opzioni comprese, o differenti se cambia anche solo un'opzione?

    So che la soluzione è relativamente semplice ma non riesco ad inquadrare la struttura giusta.

    Consigli? 'assie
    Ce l'ho fatta! - ItalianPixel -

  2. #2
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    Se hai un array in cui hai salvato i dati nel carrello, potresti fare tipo così:

    $carrello['oggetto'] = Array('tipo' => 'pallone', 'quantità' => 5, ...);

    Poi fai prima il controllo del tipo, poi della quantità...

  3. #3
    E in caso di stesso oggetto ma più pezzi con opzioni diverse?
    Ce l'ho fatta! - ItalianPixel -

  4. #4
    Ma soprattutto: come faccio a controllare se due prodotti sono uguali, unirli e sommare le due quantità? AIUTTTO! Più che altro che sto diventando ssiemo a raccapezzarmi!
    Ce l'ho fatta! - ItalianPixel -

  5. #5
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    Nell' array specifichi anche quelle magari in modo che con una explode puoi fare un bel controllo

  6. #6
    ... un esempio?

    Non riesco a crearmi l'idea della struttura in testa...
    Ce l'ho fatta! - ItalianPixel -

  7. #7
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    $carrello['oggetto'] = Array('tipo' => 'pallone', 'quantità' => 5, 'opzioni'=>'scontodel20%|pagotraunmese|...');

    Così, con una explode() di $carrello['oggetto']['opzioni'] puoi prenderti tutti i valori che vuoi!
    Ti consiglio di fare in modo che le opzioni abbiano un id per evitare complicazioni, tipo:
    sconto del 20% = 0
    sconto del 30% = 1
    ...
    per il primo parametro delle opzioni
    pagotraunmese = 0
    pagotraduemesi = 1
    ...
    per il secondo parametro delle opzioni
    ...
    E così via...
    Poi fai una check dell' id dell' opzione per ogni opzione

  8. #8
    Nel silenzio di ieri mi sono venute un pò di idee.
    Dovendo salvare il tutto in un cookie/sessione ho dovuto compattare il tutto.
    Attualmente la struttura che ho fatto è:
    Codice PHP:
    array(id_prodotto=>array(array(idopzione=>valoreopzione,quantita=>numeroquantita))); 
    aggiungendo un array, quello più profondo, aggiungo un prodotto allo stesso id, mentre aggiungendo un nuovo id prodotto aggiungo un nuovo prodotto.
    Il mio obbiettivo è quello di lasciare libero arbitrio a chiunque voglia mettere 100 opzioni o nessuna. Se poi si dovesse aggiungere lo stesso prodotto con le stesse 100 opzioni, vorrei che si incrementasse la quantità di uno piuttosto che creare un nuovo identico prodotto.
    Non sapendo quindi a priori quali opzioni ho, devo fare una funzione in cui i le opzioni mi vengono passate sotto forma di stringa e le converto in array multidimensionale, che andrò successivamente a inserire nell'array più profondo come nuovo prodotto.

    Magari fosse semplice skj... lo vorrei fare il più completo possibile ma è dura calcolare ogni possibile azione.
    Comunque adesso ho problemi a unire gli array uguali, escludendo la quantità che può variare.
    Mi sto impelagando con: array_key_exist, array_diff, serialize e compagno unserialize... Un macello insomma.
    Ce l'ho fatta! - ItalianPixel -

  9. #9
    Credici o no quella cosa del codice univoco è stata la manna dal cielo!
    Dopo settimane di tribolazioni, stamattina ho capito come usarlo!

    Creo un codice criptato con le opzioni che mi vengono inviate, quantità e id prodotto a parte, le salvo nell'array e le uso per il confronto con i prodotti futuri. Se avranno lo stesso codice dentro lo stesso id prodotto, vorrà dire che sono identici e a quel punto aggiungo la quantità richiesta, altrimenti creo un nuovo array.

    Incasinato da spiegare ma rispetto alle 130 righe che usavo prima e non funzionava, con 30 ho risolto il problema e funziona egregiamente!
    Ce l'ho fatta! - ItalianPixel -

  10. #10
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    Giusto, presumendo che questo metodo di crypting generi una stringa unica come risultato per ogni possibile combinazione di caratteri come base64 o uuencode...
    In ogni caso è quello che volevo scrive io stesso stamane

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.