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

    Cambiare i valori di un array in una sessione

    Ciao a tutti,
    ho scritto questo codice per caricare 8 articoli (magliette) da un database
    mysql (ho omesso il codice per semplificare) e cambiarne la quantità per
    ogni taglia memorizzando i dati in una sessione,ricaricando infine la stessa
    pagina con i dati aggiornati.
    Ho messo gli input text per cambiare la quantità e il submit per aggiornare
    i valori nella sessione relativi a quell'articolo.
    La prima volta che viene aperta la pagina si apre la sessione in cui viene
    memorizzato l' array con le quantità impostate a zero.
    Ogni input text e il submit relativo all'articolo (indice dell'array)
    leggono correttamente i valori dalla sessione (indice,chiave, valore), ma
    quando provo a cambiare le quantità non funziona.
    Il problema è sicuramente nella parte del codice segnalata, non riesco ad
    arrivare oltre, data la mia limitata conoscenza di php e sessioni.
    Anzi, non mi meraviglierei se quello che ci ho scritto è una sciocchezza.
    Mi date una mano? Ogni tipo di suggerimento è il benvenuto.
    Grazie
    Lorenzo

    <?
    session_start();

    if (!isset($val_numerata))
    {
    $val_numerata=array(
    "1" => array("small"=>0,"medium"=>0,"large"=>0,"extra large"=>0),
    "2" => array("small"=>0,"medium"=>0,"large"=>0,"extra large"=>0),
    "3" => array("small"=>0,"medium"=>0,"large"=>0,"extra large"=>0),
    "4" => array("small"=>0,"medium"=>0,"large"=>0,"extra large"=>0),
    "5" => array("small"=>0,"medium"=>0,"large"=>0,"extra large"=>0),
    "6" => array("small"=>0,"medium"=>0,"large"=>0,"extra large"=>0),
    "7" => array("small"=>0,"medium"=>0,"large"=>0,"extra large"=>0),
    "8" => array("small"=>0,"medium"=>0,"large"=>0,"extra large"=>0));
    session_register('val_numerata');
    }
    else
    {
    $contatore=$_POST['contatore'];
    $key=$_POST['key'];
    $value=$_POST['value'];

    ############## PROBLEMA###################
    foreach($val_numerata[$contatore] as $key=>$value)
    {
    $val_numerata[$contatore]=array($key=>$value);
    }
    #############################################
    }

    print "<table>";
    $contatore=1;
    while(recupero articoli dal db)
    {
    print "<form action='myself.php' method='POST'>";
    print "<tr>";
    foreach($val_numerata[$contatore] as $key=>$value)
    {
    print "<td><input type='text' name='$key' value='$value'
    maxlength='3' size='1'></td>";
    }
    print "</td>";
    print "<td>";

    foreach($val_numerata[$contatore] as $key=>$value)
    {
    print "<input type='hidden' name='contatore' value='$contatore'>";
    print "<input type='hidden' name='$key' value='$key'>";
    print "<input type='hidden' name='value' value='$value'>";
    }
    print "<input type='submit' name='Submit' value='aggiorna'></td>";
    print "</tr></form>";
    $contatore++;
    }
    print "</table>";
    ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    442
    ti spiego:
    quando tu utilizzi una variabile di sessione il valore di quella sessione non cambia finche ha vita

    quindi se vuoi aggiornare delle variabili di sessione con altri valori dei fare in questo modo

    esempio:

    $nick=$_SESSION['nome']

    $ciao=$nick //memorizzi il contenuto della sessione in un altra variabile

    $ciao="nuovo valore"

    session_register('ciao') //i questo modo registri il nuovo valore in una sessione

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.