El código añade nombre del producto introducido (mediante un formulario) y la cantidad que queremos. Eso lo hace bien para uno o varios artículos.
El problema viene con el precio. Solo funciona para un artículo, si meto más productos el precio del artículo anterior lo machaca (no así la cantidad y nombre del artículo).
Paso el código a ver si alguién me puede echar una mano:
Cita:
<?php
include("datos.php"); // codigo donde se recogen los datos en varios arrays
//recogemos los valores del formulario y los asignamos variables
$preart = $_GET[preart]; //precio del articulo
$nomart = $_GET[nomart]; //Nombre del articulo
$cantidad = $_GET[cantidad]; //Cantidad de articulo
// Creamos sesiones dos sesiones, una la utilizaremos para calcular la cantidad de productos y el modelo del producto y otra para el precio de cada producto
$_SESSION[cantidadcesta]=$cantidadcesta;
$_SESSION[preciocesta]=$preciocesta;
// Si el nombre del articulo no esta vacio creamos un array con el primer articulo(modelo) introducido y lo recorremos todo el array con un bucle
// Le sumamos los valores del array anterior a la cantidad si ya habiamos introducido ese artículo(modelo).
if (isset($nomart))
{
$cantidadcesta[$nomart]=$cantidad;
foreach($cantidadcesta as $modelo => $unidad)
{
if($cantidadcesta == $modelo)
{
$cantidadcesta[$modelo]+=$cantidad;
$encontrado = 1;
}
}
if (!$encontrado)
{
$cantidadcesta[$nomart]=$cantidad;
}
}
// Si el precio no esta vacio metemos en un array el valor del primer precio intriducido. Recorremos con un bucle el array para ver si ya se había intorducido. En ese caso
// vamos sumando.
if (isset($preart))
{
$preciocesta[$cantidad]=$preart;
foreach($preciocesta as $model => $precio)
{
if ($preciocesta == $model)
{
$preciocesta[$model]+=$preart;
$econtrado2 = 1;
}
if (!$encontrado2)
{
$preciocesta[$nomart]=$preart;
}
}
}
// Coge de la array creado en datos.php los dos primeros datos y los muestra. Crea un formulario y pasa los datos que necesitamos (nomart, preart y cantidad)
// pasa mediante un campo oculto (hidden) para posteriormente mostrar el carrito.
if ($_GET[idmarca] == 0)
{
for ($i=0; $i<=1; $i++)
{
?>
<form action="<?=$PHP_SELF."?".$SID?>" method="get"/>
<fieldset> <legend> Compra portatil </legend> <br/>
<blockquote>
<h1><?php echo $articulo[$i];?></h1>
<p><?php echo $detalleart[$i];?></p>
<p>Precio: <?php echo $precioart[$i];?> Euros</p>
</blockquote>
<input type="hidden" name="nomart" value="<?php echo $articulo[$i]?>"/>
<input type="hidden" name="preart" value="<?php echo $precioart[$i]?>"/>
<input type="hidden" name="cantidad" value="1"/>
<input type="submit" name="Enviar" value="Comprar"/> <br/>
</fieldset>
</form>
<br/>
<?php
}
}
// Mostramos el carrito.
if(isset($cantidadcesta))
{
echo "<div>Cesta de compra es:</div><br/>";
foreach ($cantidadcesta as $modelo => $unidad)
{
if ($unidad>0)
{
//$preciototal+=$preart*$unidad;
echo "<div> Artículo: ".$modelo."<br/>";
echo "<div> Unidades: ".$unidad." </div><br/>";
echo "<div> Precio: ".$precio."<br/>";
// echo "<div>---------------------------------------------</div>";
//}
}
}
}
?>
<?php
include("datos.php"); // codigo donde se recogen los datos en varios arrays
//recogemos los valores del formulario y los asignamos variables
$preart = $_GET[preart]; //precio del articulo
$nomart = $_GET[nomart]; //Nombre del articulo
$cantidad = $_GET[cantidad]; //Cantidad de articulo
// Creamos sesiones dos sesiones, una la utilizaremos para calcular la cantidad de productos y el modelo del producto y otra para el precio de cada producto
$_SESSION[cantidadcesta]=$cantidadcesta;
$_SESSION[preciocesta]=$preciocesta;
// Si el nombre del articulo no esta vacio creamos un array con el primer articulo(modelo) introducido y lo recorremos todo el array con un bucle
// Le sumamos los valores del array anterior a la cantidad si ya habiamos introducido ese artículo(modelo).
if (isset($nomart))
{
$cantidadcesta[$nomart]=$cantidad;
foreach($cantidadcesta as $modelo => $unidad)
{
if($cantidadcesta == $modelo)
{
$cantidadcesta[$modelo]+=$cantidad;
$encontrado = 1;
}
}
if (!$encontrado)
{
$cantidadcesta[$nomart]=$cantidad;
}
}
// Si el precio no esta vacio metemos en un array el valor del primer precio intriducido. Recorremos con un bucle el array para ver si ya se había intorducido. En ese caso
// vamos sumando.
if (isset($preart))
{
$preciocesta[$cantidad]=$preart;
foreach($preciocesta as $model => $precio)
{
if ($preciocesta == $model)
{
$preciocesta[$model]+=$preart;
$econtrado2 = 1;
}
if (!$encontrado2)
{
$preciocesta[$nomart]=$preart;
}
}
}
// Coge de la array creado en datos.php los dos primeros datos y los muestra. Crea un formulario y pasa los datos que necesitamos (nomart, preart y cantidad)
// pasa mediante un campo oculto (hidden) para posteriormente mostrar el carrito.
if ($_GET[idmarca] == 0)
{
for ($i=0; $i<=1; $i++)
{
?>
<form action="<?=$PHP_SELF."?".$SID?>" method="get"/>
<fieldset> <legend> Compra portatil </legend> <br/>
<blockquote>
<h1><?php echo $articulo[$i];?></h1>
<p><?php echo $detalleart[$i];?></p>
<p>Precio: <?php echo $precioart[$i];?> Euros</p>
</blockquote>
<input type="hidden" name="nomart" value="<?php echo $articulo[$i]?>"/>
<input type="hidden" name="preart" value="<?php echo $precioart[$i]?>"/>
<input type="hidden" name="cantidad" value="1"/>
<input type="submit" name="Enviar" value="Comprar"/> <br/>
</fieldset>
</form>
<br/>
<?php
}
}
// Mostramos el carrito.
if(isset($cantidadcesta))
{
echo "<div>Cesta de compra es:</div><br/>";
foreach ($cantidadcesta as $modelo => $unidad)
{
if ($unidad>0)
{
//$preciototal+=$preart*$unidad;
echo "<div> Artículo: ".$modelo."<br/>";
echo "<div> Unidades: ".$unidad." </div><br/>";
echo "<div> Precio: ".$precio."<br/>";
// echo "<div>---------------------------------------------</div>";
//}
}
}
}
?>