Foros del Web » Programando para Internet » PHP »

ayuda carrito de compra please

Estas en el tema de ayuda carrito de compra please en el foro de PHP en Foros del Web. Buenas, estoy aprendiendo PHP y ahora mismo intentó crear mi primer mini proyecto jejeje que se trata de una tienda online , he adaptado el ...
  #1 (permalink)  
Antiguo 07/12/2007, 02:51
 
Fecha de Ingreso: abril-2002
Mensajes: 23
Antigüedad: 22 años
Puntos: 0
ayuda carrito de compra please

Buenas, estoy aprendiendo PHP y ahora mismo intentó crear mi primer mini proyecto jejeje que se trata de una tienda online , he adaptado el código de un script estudiándolo previamente y comprendiendo el código (no al 100% pero bueno) y me ha surguido un problemilla que a continuación detallaré.

Tengo una Bd mysql de la que listo una serie de categorías con sus productos (hasta ahí todo bien), as su vez tengo un script al que voy añadiendo al carrito los productos de 1 en 1 (sin problemas) , pero .. Cuando veo el carrito y quiero modificar el primer artículo añadido PERFECTO lo actualiza a la nueva cantidad ,el problema biene con el segundo, tercero y todos los que añada despúes del primero QUE NO ME LOS ACTUALIZA, he revisado el código que se encarga de la actualización de las cantidades de los productos ,pero no doy con el problema ¿alguien me puede ayudar please?. Voy a pegar el código a continuación
Gracias de antemano.
salu2
Bueno por si hay dudas newquean[$i] es un array con las nuevas cantidades pasadas por el formulario.
eid contiene las ids de los artículos que se deberían de actualizar sus cantidades, SOLO ACTUALIZA EL PRIMERO AÑADIDO.

Código:
<?
// UPDATE BASKET QUANTITY -Actualizar la cesta
if (isset($_POST["UpdateChg"])) {

	session_start();
	include "functions_cart.php";
		
		$i = 0;
		$size = count($_POST["eid"]); //Número de artids pasadas por el formulario 

		for ($i = 0; $i <= $size-1; $i++) {
			
			// call remove bad characters function
			$badsymbols = array(" ","-","+","*","/",".");
			$_POST["newquan"][$i] = str_replace($badsymbols,"", $_POST["newquan"][$i]);
		
			if (is_numeric($_POST["newquan"][$i])) {
				
				// if any quantity's equal 0 then remove from cart
				if ($_POST["newquan"][$i] == 0) {
					unset($_SESSION["cart"][$_POST["eid"][$i]]);
				}

				// update quantity in cart.
				if (array_key_exists($_POST["eid"][$i], $_SESSION["cart"])) {
					
					add_item_to_cart($_POST["eid"][$i], $_POST["newquan"][$i]);
				
				} 
				
			} // END IF NUMERIC
		
		}
						
		header ("location:".$_SERVER['HTTP_REFERER']);
  #2 (permalink)  
Antiguo 07/12/2007, 05:00
Avatar de Kelpie  
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 22 años, 2 meses
Puntos: 8
Re: ayuda carrito de compra please

¿Has comprobado el contendio de la variable "eid" que se recibe desde el formulario (Es un array asociativo)?. Esta variable afecta de dos maneras:

- El bucle for da tantas iteraciones como elementos halla en ella (Si solo hay uno, solo se hace una iteración y por tanto solo se modifica un artículo)

- Solo se actualiza la base si existe el artículo de "eid" en la variable de sesión "cart" (Otro array asociativo).

El contenido de "newquan" afecta desde el punto de vista que si no es numérico no actualiza el artículo. Debería haber un elemento en "newquan" por cada uno de "eid". Puede ser problema del diseño del formulario en que se actualizan las cantidades, que no manda la información como debe....
__________________
Kelpie
  #3 (permalink)  
Antiguo 07/12/2007, 16:28
 
Fecha de Ingreso: abril-2002
Mensajes: 23
Antigüedad: 22 años
Puntos: 0
Re: ayuda carrito de compra please

Cita:
Iniciado por Kelpie Ver Mensaje
¿Has comprobado el contendio de la variable "eid" que se recibe desde el formulario (Es un array asociativo)?. Esta variable afecta de dos maneras:

- El bucle for da tantas iteraciones como elementos halla en ella (Si solo hay uno, solo se hace una iteración y por tanto solo se modifica un artículo)

- Solo se actualiza la base si existe el artículo de "eid" en la variable de sesión "cart" (Otro array asociativo).

El contenido de "newquan" afecta desde el punto de vista que si no es numérico no actualiza el artículo. Debería haber un elemento en "newquan" por cada uno de "eid". Puede ser problema del diseño del formulario en que se actualizan las cantidades, que no manda la información como debe....
Ok , gracias por la respuesta ,me he decidido por implementar otro carrito a medida que iba siguiendo las explicaciones que daban , y la verdad que es más sencillo que este que he posteado ,esta explicado magitral y sencillamente por los de www.desarrolloweb.com , dejo el link por si a alguien le interesa.
http://www.desarrolloweb.com/manuales/56/#capitulos
Gracias de todos modos por tu tiempo , en cuanto pueda revisaré el código para confirmar eso del eid .
Un saludo
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 08:04.