Ciao a tutti,
sto sbattendo la testa su questo problema da un po', e considerato che sono un neofita
la cosa mi sta snervando un pochino :
Il mio problema riguarda un carrello della spesa in php,
ho un file index.php che mostra i prodotti e la scelta delle variabili (genere: maschio femmina neutro e colori vari impostati come radio button) e il pulsante ordina/aggiungi al carrello che rimanda al file cart.php
Con l'aggiunta del primo articolo tutto funziona perfettamente, variabili comprese.
Se aggiungo altri articoli il codice mi sovrascrive le variabili facendole risultare tutte identiche nel carrello.
esempio: scelgo come primo articolo Maglietta Neutro Blu
visualizza Maglietta Neutro Blu
scelgo come secondo articolo Pantaloni Femmina Nero
visualizza Maglietta Femmina Nero
Pantaloni Femmina Nero
Non riesco a fargli memorizzare per ogni riga le variabili
questo il file index che pesca i dati da un database Mysql:
<?php
require 'connect.php';
$result = mysqli_query($con, 'select * from products');
?>
<table cellpadding="2" cellspacing="2" border="0">
<tr>
<th>Immagine</th>
<th>Id</th>
<th>Nome</th>
<th>Prezzo</th>
<th>Genere</th>
<th>Colore</th>
<th>Acquista</th>
</tr>
<?php while ($product = mysqli_fetch_object($result)) { ?>
<form action="cart.php?id=<?php echo $product->id; ?>" method="GET">
<tr>
<td><img style="width: 10%;" src="<?php echo $product->image; ?>"></td>
<td><?php echo $product->id; ?></td>
<td><?php echo $product->name; ?></td>
<td><?php echo $product->price; ?></td>
<td>Scegli genere:<br>
<?php
$genere = $product->gender;
$gen = explode(", ", $genere);
?>
<input type="radio" name="genere" value="maschio"><?php echo $gen[0]; ?><br>
<input type="radio" name="genere" value="femmina"><?php echo $gen[1]; ?><br>
<input type="radio" name="genere" value="neutro"><?php echo $gen[2]; ?><br>
</td>
<td>Scegli colore:<br>
<?php
$colore = $product->color;
$col = explode(", ", $colore);
?>
<input type="radio" name="colore" value="rosso"><?php echo $col[0]; ?><br>
<input type="radio" name="colore" value="blu"><?php echo $col[1]; ?><br>
<input type="radio" name="colore" value="giallo"><?php echo $col[2]; ?><br>
<input type="radio" name="colore" value="rosa"><?php echo $col[3]; ?><br>
<input type="radio" name="colore" value="verde"><?php echo $col[4]; ?><br>
<input type="radio" name="colore" value="azzurro"><?php echo $col[5]; ?><br>
<input type="radio" name="colore" value="grigio"><?php echo $col[6]; ?><br>
<input type="radio" name="colore" value="sorpresa"><?php echo $col[7]; ?><br>
</td>
<td><input type='hidden' name='id' value='<?php echo $product->id; ?>'></td>
<td><input type='submit' name='add_to_cart' value='Ordina'></td>
</tr>
</form>
<?php } ?>
</table>
e questo il file cart.php:
<?php
session_start();
require 'connect.php';
require 'item.php';
echo $_GET['genere'];
if(isset($_GET['id'])){
$result = mysqli_query($con, 'select * from products where id='.$_GET['id']);
$product = mysqli_fetch_object($result);
$item = new Item();
$item->id = $product->id;
$item->name = $product->name;
$item->price = $product->price;
$item->quantity = 1;
//Cerca prodotti gi� presenti nel carrello
$index = -1;
$cart = unserialize(serialize($_SESSION['cart']));
for($i=0; $i<count($cart); $i++)
if($cart[$i]->id==$_GET['id'])
{
$index = $i;
break;
}
if($index==-1)
$_SESSION['cart'][] = $item;
else{
$cart[$index]->quantity++;
$_SESSION['cart'] = $cart;
}
}
// cancella prodotti dal carrello
if(isset($_GET['index'])){
$cart = unserialize(serialize($_SESSION['cart']));
unset($cart[$_GET['index']]);
$cart = array_values($cart);
$_SESSION['cart'] = $cart;
}
?>
<table cellpadding="2" cellspacing="2" border="1">
<tr>
<th>Azione</th>
<th>Id</th>
<th>Nome</th>
<th>Prezzo</th>
<th>Qta</th>
<th>Sub Total</th>
<th>Genere</th>
<th>Colore</th>
</tr>
<?php
$cart = unserialize(serialize($_SESSION['cart']));
$s = 0;
$index = 0;
$qta = 0;
$shipping = 6;
for($i=0; $i<count($cart); $i++){
$s += $cart[$i]->price * $cart[$i]->quantity;
$qta = $qta + $cart[$i]->quantity;
$shipping++;
$cart[$i]->gender = $_GET['genere'];
$cart[$i]->color = $_GET['colore'];
if($cart[$i]->price == 99){
if($qta <= 1){
$shipping= $shipping - 7;
}
else {
$shipping--;
}
}
?>
<tr>
<td><a href="cart.php?index=<?php echo $index; ?>" onclick="return confirm('Sei sicuro?')">Cancella</a></td>
<td><?php echo $cart[$i]->id; ?></td>
<td><?php echo $cart[$i]->name; ?></td>
<td><?php echo $cart[$i]->price; ?></td>
<td><?php echo $cart[$i]->quantity; ?></td>
<td><?php echo $cart[$i]->price * $cart[$i]->quantity; ?></td>
<td><?php echo $cart[$i]->gender ?></td>
<td><?php echo $cart[$i]->color ?></td>
</tr>
<?php
$index++;
}
?>
<tr>
<td colspan="5" align="right">Somma</td>
<td align="left"><?php echo $s; ?></td>
</tr>
<tr>
<td colspan="5" align="right">Qta</td>
<td align="left"><?php echo $qta; ?></td>
</tr>
<tr>
<td colspan="5" align="right">Spese</td>
<td align="left"><?php echo $shipping; ?></td>
</tr>
</table>
<br>
<a href="index.php">Continua lo shopping</a>
Grazie infinite