Foros del Web » Programando para Internet » PHP »

Ayuda con carrito de webestilo

Estas en el tema de Ayuda con carrito de webestilo en el foro de PHP en Foros del Web. Hola a todos, estoy tratando de modificar el carrito de webestilo para que me acepte mas productos, llevo mas de 2 horas tratando de hacerlo ...
  #1 (permalink)  
Antiguo 12/05/2003, 02:41
Avatar de pabloman  
Fecha de Ingreso: enero-2003
Ubicación: Temuko
Mensajes: 54
Antigüedad: 14 años, 11 meses
Puntos: 0
Ayuda con carrito de webestilo

Hola a todos, estoy tratando de modificar el carrito de webestilo para que me acepte mas productos, llevo mas de 2 horas tratando de hacerlo y aun no puedo, asi que pido un poco de "help" para este pequeño saltamontes del php, el codigo que estoy modificando es este:

<?php
session_start();
session_register('itemsEnCesta');
if ($item) { //comprobamos si el usuario ha pasado algún articulo desde el formulario
//si el array itemsEnCesta no existe, lo creamos con el nuevo producto y la cantidad indicada
if (!isset($itemsEnCesta)){
$itemsEnCesta[$item]=$cantidad;
$itemsEnCesta[$item]=$cuota; // esta linea la puse yo
$itemsEnCesta[$item]=$coment; // esta linea la puse yo
} else{ //Si el array existe
//recorremos su contenido, con el foreach, y si encontramos un artículo igual, añadimos la cantidad...
foreach($itemsEnCesta as $k => $v){
if ($item==$k){
$itemsEnCesta[$k]+=$cantidad;
$encontrado=1;
}
}
// Si no lo encontramos, es un nuevo artículo, por lo tanto, añadimos el nuevo producto
//con la correspondiente cantidad a itemsEnCesta
if (!$encontrado) $itemsEnCesta[$item]=$cantidad;
if (!$encontrado) $itemsEnCesta[$item2]=$cuota; //este codigo lo puse yo
if (!$encontrado) $itemsEnCesta[$item]=$coment; //este codigo lo puse yo
}
}
?>
<html>
<body>
<tt>
<form action="<?=$PHP_SELF."?".SID?>" method="post">
Ingresa el producto <input type="text" name="item" size="20"><br>
Ingresa la cantidad <input type="text" name="cantidad" size="5"><br>
Ingresa el Nº de cuotas <input type="text" name="cuota" size="5"><br> <!-- lo puse yo -->
Ingresa comentario <input type="text" name="coment" size="25"><br> <!-- lo puse yo -->
<input type="submit" value="Añadir a la cesta"><br>
</form>
<?
$total="0"; // yo...
if (isset($itemsEnCesta)){
echo'El contenido de la cesta de la compra es:<br>';
foreach($itemsEnCesta as $k => $v){
echo 'Artículo(s): '.$k.' cantidad: '.$v. ' cuotas: '.$cuota. ' comentario: ' .$coment. '<br>' ;
$total = $v + $total; // yo...
}
echo "la suma total es: ",$total; // yo...
}
?>
</tt>
</body>
</html>

Porfavor corrijan mi error, a todo esto he visto algunos carritos que andan por la web pero se me complicaron mas, otros estan en javascript y no los pude adaptar a mi necesidad asi que necesito una vez mas de su valiosa ayuda.

Saludos a todos.........
__________________
Cuando creo aprender algo, mas me doy cuenta que nada se...

Última edición por pabloman; 12/05/2003 a las 02:51
  #2 (permalink)  
Antiguo 12/05/2003, 03:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Fijate que esto no es correto ..

$itemsEnCesta[$item]=$cantidad;
$itemsEnCesta[$item]=$cuota; // esta linea la puse yo
$itemsEnCesta[$item]=$coment; // esta linea la puse yo

Es un array $itemsEnCesta .. de incide $item por poner un ejemplo .. el valor que le asignas es: primero $cantidad .. luego $cuota y luego $coment.. Resultado .. al final solo tienes el último ..

Debes usar arrays bidimensionales o bien un array para cada propiedad de tu producto ..

osese ó:

$producto['cantidad'][$item]
$producto['cuota'][$item]
$producto['coment'][$item]

que sería arrays (arreglos) bidimensionales ...

o bien simplemente un array diferente para cada propiedad ..

$cantidad[$item]
$cuota[$item]
$coment[$item]

Y por supuesto .. cambiar toooooda la lógica que tienes en tu "carrito" ..

Como veras .. el "tema" está en manejar y conocer como funcionan los arrays (arreglos) ... Pues un "carrito" .. en su base es un simple array que lo propagas en una cookie o en una session .. o te lo guardas temporalmente en una BD .. en un archivo de texto plano .. y hasta por el URL .. El cual (el/los array(s)) los modificas según sumes productos (elementos a tu array) o le quietes y/o modifiques algun producto (indice ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 12/05/2003, 03:10
Avatar de pabloman  
Fecha de Ingreso: enero-2003
Ubicación: Temuko
Mensajes: 54
Antigüedad: 14 años, 11 meses
Puntos: 0
Gracias Cluster, pondre manos a la obra de inmediato

Byeeee........
__________________
Cuando creo aprender algo, mas me doy cuenta que nada se...
  #4 (permalink)  
Antiguo 19/05/2003, 02:49
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 16 años, 1 mes
Puntos: 5
Hola Pablo.

Nunca he hecho un carrito pero una vez hice algo parecido (un cuaderno de viaje) pero en JavaScript y me encontré con un problemilla y era que la norma sobre cookies impide tener más de 20 cookies por sitio Web. Como tú dices que lo que pretendes es que el carrito de webestilo acepte más productos, quizás sea por esta restricción que no lo consigas.

No te puedo ayudar mucho más . Últimamente estoy bastante liada y sólo entré aquí porque me lo pedistes por MP cosa que me alaga mucho pero quiero aclarar que no estoy de acuerdo con este método de contacto para que la gente resuelva sus dudas... Si alguien no llega a tu mensaje será o bien porque no lo posteastes claramente en el subject (no es tu caso) o porque por alguna circunstancia no le puede dedicar tiempo a él.

No te enfades, ok?

Comprueba lo que te dijo Cluster y ya contarás.

Suerte
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:34.