Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Eseguire check out del carrello PHP

    Ciao a tutti,

    stò realizzando per un cliente un sistema di prenotazione di prodotti alimentari da ritirare direttamente presso la sede. Con le sessioni PHP sono riuscito a creare un carrello della spesa funzionante ma ho ancora qualche problema.

    Innanzi tutto ecco il codice:

    Codice PHP:
    global $db;
      
    $carrello $_SESSION['carrello'];
      
    $somma 0;
      if (
    $carrello)
      {
        
    $prodotti = @explode(',',$carrello);
        
    $acquisti = array();
        foreach (
    $prodotti as $prodotto)
        {
          
    $acquisti[$prodotto] = (@isset($acquisti[$prodotto])) ? $acquisti[$prodotto] + 1;
        }
        
    $result[] = '<form action="checkout.php" method="post" name="cart">';
        
    $result[] = '<table>';
        
    $result[] = '<thead>';
        
    $result[] = '<td class="intestazione1">Prodotto</td>';
        
    $result[] = '<td class="intestazione2">Prezzo</td>';
        
    $result[] = '<td class="intestazione1">Q</td>';
        
    $result[] = '<td class="intestazione2">Totale</td>';
        
    $result[] = '<td class="intestazione1"></td>';
        
    $result[] = '</thead>';
        
    $result[] = '<tbody>';
        foreach (
    $acquisti as $id=>$quantita)
        {
          
    $sql 'SELECT * FROM prodotti WHERE id = '.$id;
          
    $res $db->query($sql);
          
    $f $res->fetch();
          @
    extract($f);
          
    $result[] = '<tr>';
          
    $result[] = '<td class="prodotto">'.$titolo.'</td>';
          
    $result[] = '<td class="prezzo">&euro;'.$prezzo.'</td>';
          
    $result[] = '<td class="prezzo"><input type="text" name="quantita'.$id.'" value="'.$quantita.'" size="3"></td>';
          
    $result[] = '<td class="prezzo">&euro;'.($prezzo $quantita).'</td>';
          
    $somma += $prezzo $quantita;
          
    $result[] = '<td class="prezzo">[url="carrello.php?action=cancella&id='.$id.'"][img]./images/trash.png[/img][/url]</td>';
          
    $result[] = '</tr>';
        }
        
    $result[] = '</tbody>';
        
    $result[] = '</table>';
        
    $result[] = '

    Totale: [b]&euro;'
    .$somma.'[/b]</br>';
        
    //$result[] = '<button type="submit">Aggiorna il carrello</button>';
        
    $result[] = '<input type="submit" name="aggiorna" value="aggiorna">
                     <input type="submit" name="chek_out" value="chek_out">'

        
    $result[] = '</form>';
      }else{
        
    $result[] = 'Il carrello &eacute; vuoto.
    '
    ;
      }
      return @
    join('',$result); 
    praticamente lo script mi legge la mia sessione e inserisce in una tabella l'elenco dei prodotti che ho inserito.

    Ora però sono alle prese con la funzione di aggiornamento del carrello. Se premo il pulsante Aggiorna vorrei che, in caso di modifiche, si aggiornasse il totale dei prodotti e il totale a pagare. Vi faccio un esempio pratico:

    PRIMA DI AGGIORNA

    DESCRIZIONE|P.UNITARIO|Q|TOT
    1 |€ 10,00 |1| € 10,00
    2 |€ 12,00 |2| € 24,00

    DOPO AGGIORNA


    DESCRIZIONE|P.UNITARIO|Q|TOT
    1 |€ 10,00 |2| € 20,00
    2 |€ 12,00 |2| € 24,00

    Come posso fare?
    Errare è umano, ma per fare veramente casino ci vuole la password di root

  2. #2
    secondo me la cosa migliore da fare

    1) inserire dei campi hidden col contenuto delle variabili;
    Codice PHP:
    $inc 1;
    foreach (
    $acquisti as $id=>$quantita
        { 
          
    $sql 'SELECT * FROM prodotti WHERE id = '.$id
          
    $res $db->query($sql); 
          
    $f $res->fetch(); 
          @
    extract($f); 
          
    $result[] = '<tr>'
          
    $result[] = '<td class="prodotto">'.$titolo.'</td>'
          
    $result[] = '<td class="prezzo">&euro;'.$prezzo.' <input type="hidden" name="var' $inc '" value="' $prezzo '"></td>'
          
    $result[] = '<td class="prezzo"><input type="text" name="quantita'.$id.'" value="'.$quantita.'" size="3"></td>'
          
    $result[] = '<td class="prezzo">&euro;'.($prezzo $quantita).'<input type="hidden" name="var' $inc '" value="' . ($prezzo $quantita) . '"></td>'
          
    $somma += $prezzo $quantita
          
    $result[] = '<td class="prezzo">[url="carrello.php?action=cancella&id='.$id.'"][img]./images/trash.png[/img][/url]</td>'
          
    $result[] = '</tr>'
        } 

    2) inserire degli onclick nei pulsanti in fondo al form
    Codice PHP:
    $result[] = '<input type="submit" name="aggiorna" value="aggiorna" onclick="location.href='mysqlf.php?aggiorna=1'"> 
                     <input type="submit" name="chek_out" value="chek_out" onclick="'
    location.href="myself.php?checkout=1'">'; 
    in questo modo quando clicchi ad esempio su aggiorna avrai i campi hidden col valore che avevano e puoi modificare la tabella in modo adeguato se i valori cambiano.

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.