Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Problema gestione variabili

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    123

    Problema gestione variabili

    Ciao a tutti,

    sto creando una pagina (atti.php) in cui do la possibilità agli utenti di scegliere un prodotto e di personalizzando scrivendo il nome, il cognome ecc...
    Il form presente in questa pagina, manda ad un'altra (riepilogo.php), in cui mi preoccupo di far vedere le scelte fatte ed anche d'inserire il prodotto in un carrello.
    Supponiamo che un utente scelga più di un prodotto, questi vanno a finire nel carrello.
    Quando poi avvio la procedura di checkout, se ad esempio mi porto dietro il nome inserito nella pagina atti.php, perchè magari voglio inserirlo nel mio db, chiaramente recupero solo il nome relativo all'ultimo prodotto inserito nel carrello.
    Come posso fare per creare uno o più array che memorizzino tutte le scelte fatte dall'utente?

    Spero di essere riuscito a spiegarmi. In caso contrario ditemelo, che magari posto un pò di codice.

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Io non ho ben capito... più che codice magari rispiega il "flusso"... mi pare solo di intuire che ci sono più scelte di cui vorresti "tener traccia", ma in questo caso basta usare della var. di sessione o dei cookie

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    123
    Ok rispiego.

    atti.php è una pagina in cui un utente può scegliere una cartellina e personalizzarla con un'intestazione, colore, scegliere la quantità ecc...
    Queste informazioni vengono inserite in un form, la cui action manda a riepilogo.php; qui si possono vedere le scelte fatte e mettere il prodotto in un carrello.
    Quindi io da atti recupero tutte le variabili che mi interessano. Però questo discorso vale se la persona sceglie un solo prodotto.
    Supponendo invece che ne scelga più di uno, posso recuperare solo le informazioni dell'ultimo messo nel carrello. Come faccio allora a recuperare le info di tutti i prodotti messi nel carrello?

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    devi tenerne traccia come dicevo: o cookie o sessioni... un modo semplice sono le sessioni... aggiungi session_start(); in cima a tutti i tuoi script e poi quando "registri" un prodotto metti tutti i suoi dati in un vettore (se non è già così), p.es. $prodotto e quindi memorizzi tutto nelle sessioni così:

    in cima a tutti gli script coinvolti:
    Codice PHP:
    session_start(); 
    dopo che definisci tutti i dati di un prodotto...
    Codice PHP:
    ...
    if (!isset(
    $_SESSION['prodotti'])) $_SESSION['prodotti'] = array();
    $prodotti $_SESSION['prodotti'];
    ...
    $prodotto = array('id' => ..., 'descrizione' => ...);
    ...
    $prodotti[] = $prodotto;
    ... 
    in coda a tutti gli script coinvolti:
    Codice PHP:
    $_SESSION['prodotti'] = $prodotti
    Nel "carrello" scorri il vettore $prodotti.
    Eventualmente puoi registrare i prodotti indicizzandoli con il loro id per evitare "doppioni" se potessero capitare...

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    123
    Ti chiedo una gentilezza, poichè sono abbastanza scarso con il PHP.
    Potresti indicarmi da quale pagina devo cominciare a mettere il tuo script e farmi un esempio di cosa va dopo

    $prodotto = array('id' =>

    al posto dei puntini?

    Grazie per la pazienza

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    - il primo blocco (session_start) in cima a tutti gli script
    - il secondo dove gestisci i dati del form dopo l'invio... praticamente ogni voce è un campo del form da salvare, quindi potresti avere 'id' => $_POST['id'] e così via (non so che campi ci siano)
    - il terzo PRIMA di mostrare il "carrello" per recuperare tutti i "prodotti" e poi mostrarli

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    123
    Ho fatto quello che mi hai suggerito e poi ho provato a scorrere l'array con un ciclo while, ma ci deve essere qualcosa che sbaglio, poicè mi va in loop.

    Questo è ciò che ho scritto nella pagina riepilogo.php (dove inizio a recuperare le variabili)

    Codice PHP:
      if (!isset($_SESSION['prodotti'])) 
      
    $_SESSION['prodotti'] = array();   
      
    $prodotti $_SESSION['prodotti'];   
      
    $prodotto = array('colorecarta' => $_POST['colorecarta'], 'titolo' => $_POST['titolo']);         $prodotti[] = $prodotto;    $_SESSION['prodotti'] = $prodotti
    E questa è una funzione con il while

    Codice PHP:
      function mostraProdotti() {   
      
    $_SESSION['prodotti'] = $prodotti;   
      while (
    $prodotto != "") {     
        
    $colorecarta $prodotto['colorecarta'];     
        echo 
    '<input type="text" name="colorecarta" size="8" value="'.$colorecarta.'"/>';   
      } 


  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    123
    Qualcuno che mi aiuti per cortesia. Sono bloccato.

    Grazie

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    123
    riepilogo.php è la pagina dove inizio a recuperare le variabili.
    Quindi in questa pagina il seguente codice

    Codice PHP:
    session_start();   
    if (!isset(
    $_SESSION['prodotti'])) $_SESSION['prodotti'] = array();     
    $prodotti $_SESSION['prodotti'];     
    $prodotto = array('colorecarta' => $_POST['colorecarta']);     
    $prodotti[] = $prodotto
    riepilogo.php manda a carrello.php; qui metto

    Codice PHP:
    $_SESSION['prodotti'] = $prodotti
    A questo punto non so nè in che punto del carrello cominciare a scorrere l'array, nè come farlo.
    Ho provato con un ciclo for e con un foreach, ma senza alcun risultato.

    Aiuto perfavore!!!

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    in "riepilogo" dopo le tue elaborazioni prima dell'uscita dallo script devi aggiungere come ho già detto:

    Codice PHP:
    $_SESSION['prodotti'] = $prodotti
    in "carrello" invece devi fare il contrario per recuperare i prodotti già memorizzati e poi li scorri, quindi:

    Codice PHP:
    $prodotti $_SESSION['prodotti'];
    foreach (
    $prodotti as $prodotto) {
      
    // ... qui hai accesso ai singoli prodotti 
    }; 

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 © 2014 vBulletin Solutions, Inc. All rights reserved.