Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591

    aggiungi più prodotti a carrello

    Salve a tutti,
    sto utilizzando un carrello "semplice", che fa il suo dovere..
    MA.. c'è sempre un MA..
    il cliente mi dice: "è possibile far aggiungere con un campo più prodotti dello stesso tipo? perchè questo ne aggiunge uno per volta.." e io: "cerrrrrto"..
    potete darmi una mano?
    la funzione del carrello di aggiungere è questa:
    Codice PHP:
    if(@isset($_GET['action']))
    {
      
    $action $_GET['action'];
      
      switch (
    $action)
      {
        case 
    'aggiungi':
        if (
    $carrello)
        {

          
    $carrello .= ','.$_GET['id'];
        }else{
          
    $carrello $_GET['id'];
        }
        break; 
    e la richiamo con una action nella url..
    nella "action" della form ovviamente richiamo action=aggiungi&id=<?php echo $prodotto['id']; ?>
    se è troppo complicato, ma non vedo perchè , posso pure cambiare script..

    grazie in anticipo anche se credo che le info che ho messo non sono sufficienti..

  2. #2
    Utente di HTML.it L'avatar di echoweb
    Registrato dal
    Sep 2008
    Messaggi
    419
    Ciao,

    potresti vedere se la funzione serialize e unserialize possono fare al caso tuo...


    In questo modo crei un oggetto che ha tutti i prodotti che vuoi mettere nel carrello:
    Codice PHP:
    $mioArray = array("primo","secondo","terzo","quarto");
     
    // Stampa a:4:{i:0;s:5:"primo";i:1;s:7:"secondo";i:2;s:5:"terzo";i:3;s:6:"quarto";}
    echo serialize($mioArray); 
    Per ripristinare la struttura dei dati quando verifichi action:
    Codice PHP:
    $mioArray unserialize('a:4:{i:0;s:5:"primo";i:1;s:7:"secondo";i:2;s:5:"terzo";i:3;s:6:"quarto";}');
    /*
    Stamperà l'array
    Array
    (
        [0] => primo
        [1] => secondo
        [2] => terzo
        [3] => quarto
    )
    */
    print_r($mioArray); 


    "Non soffocare la tua ispirazione e la tua immaginazione,
    non diventare lo schiavo del tuo modello"

    Vincent van Gogh

  3. #3
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    hai parlato in arabo..
    cioè ho capito di cosa si tratta ma non so implementarlo nel mio codice..
    nel carrello che uso le funzioni ci sono già, per una cosa come questa non saprei davvero dove andare a mettere le mani..

  4. #4
    Utente di HTML.it L'avatar di echoweb
    Registrato dal
    Sep 2008
    Messaggi
    419
    Tu invii i dati tramite get action=aggiungi&id=<?php echo $prodotto['id']; ?>; se al posto di <?php echo $prodotto['id']; ?> metti un array contente i vari prodotti selezionati dal cliente, quando controlli quello che ti è arrivato, leggi il contentuto dell'array.

    L'oggetto array che passi nell'url dovrà essere fatto attraverso la funzione Serialize(): per leggere il contenuto userai Unserialize().

    L'idea che ti propongo, quindi, è quella di passarti un oggetto contenente la lista dei prodotti selezionati, poi come realizzare la cosa, ci sono vari metodi, tra cui quello che ti dicevo.

    Spero, questa volta, di essere stato più chiaro.

    Ciao


    "Non soffocare la tua ispirazione e la tua immaginazione,
    non diventare lo schiavo del tuo modello"

    Vincent van Gogh

  5. #5
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    mmhh.. più chiaro, diciamo che adesso parli francese, che ho studiato alle medie 25 anni fa..
    quando dici:
    "metti un array contente i vari prodotti selezionati dal cliente, "
    che intendi? lui ha una serie di prodotti nella pagina con un campo testo dove scrive la quantità. la form lo rimanda alla pagina che elabora.. di prodotti ne "serializzo" uno?

  6. #6
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    ho risolto da solo..
    praticamente:
    passando in post la quantità che sta nel campo testo, basta modificare così:
    Codice PHP:
    $quanti $_POST['quantita'];
    if(@isset(
    $_GET['action']))
    {
      
    $action $_GET['action'];
      
      switch (
    $action)
      {
       case 
    'aggiungi':

    if (
    $carrello)
    {
    for (
    $i 1$i $quanti$i++) {
    $carrello .= ','$_GET['id'];
    }
    }else{
    for (
    $i 1$i $quanti$i++) {
    $carrello $_GET['id'];
    }
    }
    break; 
    grazie comunque a echoweb che mi ha fatto scoprire serialize, che userò in altre circostanze..

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.