Newsgroup: it.comp.www.php
Titolo: Cambiare i valori di un array in una sessione

Ciao a tutti,
vi prego di leggere perchè, anche se ho scritto un po di codice, la
soluzione dovrebbe essere semplice (non per me naturalmente!).
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>";
?>

Dovresti utilizzare la variabile $_SESSION['val_numerata'] al posto di
session_register().
Comunque non mi sembra chiaro cosa vuoi fare. Qualcosa di sbagliato sta
nel fatto che hai due input (uno del campo e uno hidden) con lo stesso
nome ($key).
Rafael Andres Marin de la Cruz
-----------------------------
http://affittistagionali.it
Il portale web per gli
affitti vacanza e stagionali
-----------------------------