Código PHP:
<?php
session_name('cesta');
session_start();
session_register('itemsEnCesta');
require('configuracion.php');
$item=$_POST['item'];
$cantidad=$_POST['cantidad'];
$itemsEnCesta=$_SESSION['itemsEnCesta'];
if ($item){
if (!isset($itemsEnCesta)){
$itemsEnCesta[$item]=$cantidad;
}else{
foreach($itemsEnCesta as $k => $v){
if ($item==$k){
$itemsEnCesta[$k]+=$cantidad;
$encontrado=1;
}
}
if (!$encontrado) $itemsEnCesta[$item]=$cantidad;
}
}
$_SESSION['itemsEnCesta']=$itemsEnCesta;
?>
<html>
<body>
<tt>
<form action="<?=$PHP_SELF."?se=".$cesta?>" method="post">
Dime el producto <input type="text" name="item" size="20"><br>
Cuantas unidades <input type="text" name="cantidad" size="20"><br>
<input type="submit" value="Añadir a la cesta"><br>
</form>
<?
if (isset($itemsEnCesta)){
echo'El contenido de la cesta de la compra es:<br>';
foreach($itemsEnCesta as $k => $v){
echo 'Artículo: '.$k.' ud: '.$v.'<br>';
}
}
?>
<a href="bd.php">Añadir a la base de datos</a>
</tt>
</body>
</html>
Pero lo que quiero es que cada artículo tenga un precio y me mueste el precio total, seria cantidad por el precio. Da igual como reciba el precio, por formulario o lo que sea.
Pero si pongo al mostrar los datos $precio*$v (v es la cantidad, lo que pones en el formulario) consigo que lo haga, pero si añado otro articulo diferente, me hace algo raro, me cogeria el precio y lo multiplicaria tambien en el articulo que antes metí (esto del precio no viene en el código, digo cuando lo modificara).
Así que funciona si solo metes un artículo, pero si metes otro diferente el anterior también te lo modifica cambiando el precio.
Como pdria hacer para que al introducir una cantidad en un articulo que ya introduje me salga el precio total sin que me modifique los demas artículos?