Foros del Web » Programando para Internet » PHP »

Ayuda con Carrito de compra

Estas en el tema de Ayuda con Carrito de compra en el foro de PHP en Foros del Web. Buenas , estoy haciendo un carrito de la compra y ya solo me queda un tema q no consigo solucionar, en resumen el carrito esta ...
  #1 (permalink)  
Antiguo 01/01/2008, 12:47
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Ayuda con Carrito de compra

Buenas , estoy haciendo un carrito de la compra y ya solo me queda un tema q no consigo solucionar, en resumen el carrito esta orientado a objetos
y es bastante sencillo

1 añadir artículos de 1 en 1

2 cuando as añadido 1 q ya existe se sobrescribe la cantidad de ese producto por la nueva cantidad , así como el precio $precio=$cantidad*precio.

En definitiva he logrado hacer eso pero me queda una cosa y es que en el carrito se recibe la cantidad $qty por medio de una casilla de formulario
editable y lo que NO CONSIGO de ninguna manera es hacer que el formulario pueda enviarme a una página (digamos update_qty.php) tanto la fila donde se encuentra el artículo (que coincide con su posición en el array articulo[$fila]=$articulo y también articulo_precio[$fila]=$precio etc etc ) y la cantidad a modificar , por ejemplo si tengo 5 patatas y pongo 15 quiero q se actulice tanto el precio como la cantidad q se ve en el carrito. El problema principal es que no soy capaz de pasar por el formulario las dos cosas a la vez (más bien creo que no se como recibirlas con $POST); si consiguiera hacer que pase la fila y a su vez la cantidad lo tendría solucionado , pero el tema es que no se como podría CREAR UN ARRAY ASOCIATIVO , una especie de $HTTP_POST_VARS[] pero que me creara un array asociativo tipo:
$fila => $qty entonces supongo que podría dale al nombre de la casilla del formulario "$fila" (cada una será diferente según la posición del artículo en el array) serían 1,2,3,4,5,6,7,8,9 y de valor podría darle la $qty a cada artículo (es decir la cantidad) y luego juntarlos en un array asociativo ¿PERO COMO? ,HE buscado y buscado y no lo encuentro, agradecería vuestra ayuda.
Salu2 y gracias de antemano.
  #2 (permalink)  
Antiguo 01/01/2008, 14:03
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 21 años
Puntos: 60
Re: Ayuda con Carrito de compra

Hola, yo creo que para lo que necesitas, solo necesitas enviar la cantidad de productos, no necesitas enviar tambien el nuevo costo, ese lo puedes calcular en la pagina que recibe la cantidad, sin embargo para lo que tu dices por que no para cada registro creas un formulario con los campos que quieres enviar, creo que lo de los array asociativos lo haces ver muy complicado, en fin si tienes una clase que maneje el carro, por que no hacer un metodo que reciba tus tres parametros y los meta en el array que recibe los productos.. por ejemplo en la pagina que reciba los productos podrias hacer esto..

Código PHP:
<?php

$productos 
= array();

$productos['id'] = $_POST['id_prod'];
$productos['precio'] = $_POST['precio'];
$productos['cantidad'] = $_POST['cantidad'];
y asi todo lo mantienes en un array asociativo directamente.. habria mencionar que para que se guarde el array deberias de meterlo en una variable de sesion o cookies, para mantener el carro.. y agregar mas datos al array.. ;)

Algo mas o menos asi..

http://oscararzola.com/class/shopCar.txt
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #3 (permalink)  
Antiguo 01/01/2008, 14:09
Avatar de vevni  
Fecha de Ingreso: julio-2005
Ubicación: cancun mexico
Mensajes: 598
Antigüedad: 18 años, 9 meses
Puntos: 3
De acuerdo Re: Ayuda con Carrito de compra

tan simple,


imagino que si estas en el form es porque sabes que registro es el que vas a modificar o actualizar, osea sabes su ID.


bueno tan solo puedes agregarlo en el action

<form action="update.php=$ID">
asi si dan click en actualizar, pasas el id
y
en update.php lo recoges asi $_GET["nombre_var"];


O SI NO PUEDES HACERLO CON CAMPOS HIDDEN...

y los recoges con $_POST[""];
__________________
Código PHP:
echo"hola mundo ver 1221332143.02";
echo
"cuantos usuarios habran impreso hola mundo en el mundo.!???"
  #4 (permalink)  
Antiguo 02/01/2008, 01:26
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Re: Ayuda con Carrito de compra

Graciias "SSX" y "VEVNI" por la ayuda, así lo he hecho aunque me hubiera gustado actualizar todas las cantidaddes de todos los productos del carrito al mismo tiempo pero bueno.. esta manera es mas sencilla y ya tendré tiempo de estrujarme el cerebro para la otra jejejej. He intentado ver otros scripts de carritos y parece que en el formulario (solo 1 para todas las cantidades) , nombran al campo name con barras invertidas /"name/" supongo que para que envie el nombre de todos los elementos del array nombre_articulos[$i] y así recogerlos individualmente en la otra página q los recibe , pero ahy es donde viene el misterio ¿como los recibo y asocio la Id o key o como se quiera llamar del producto con su cantidad nueva?. Bueno lo dejo abierto por si a alguien se le ocurre.
Saludos y feliz año 2008 a tod@s
  #5 (permalink)  
Antiguo 02/01/2008, 12:40
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 21 años
Puntos: 60
Re: Ayuda con Carrito de compra

Si lo que deseas es actualizar varios productos al mismo tiempo envia un array de los campos a actualizar...


Código HTML:
<form action="actualiza_carro.php" method ="POST">
<input type="hidden" name="id_prod[]" id="id_prod[]" value="1" />
<input type="hidden" name="precio[]" id="precio[]" value="100" />
<input type="hidden" name="id_prod[]" id="id_prod[]" value="2" />
<input type="hidden" name="precio[]" id="precio[]" value="200" />
<input type="hidden" name="id_prod[]" id="id_prod[]" value="3" />
<input type="hidden" name="precio[]" id="precio[]" value="300" />
</form> 
ahora en php recibes el array y lo procesas, puedes ir ingresando uno por uno con el metodo de meter_producto o hacer un metodo que reciba el array y lo procese y lo vaya insertando uno por uno llamando al metodo meter_producto-- aseguras la comunicaciòn por mensajes en tu objeto..

Código PHP:
<?php

//recibes el array por POST
for ($x=0$x count($_POST['id_prod']); $x++){
  echo 
"Producto: ".$x." Con id -->".$_POST['id_prod'][$x]."<br>Con precio: ".$_POST['precio'][$x]."<br><br>";
}
Esa es la idea..
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
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 17:23.