08/08/2011, 07:32
|
| | | Fecha de Ingreso: junio-2010
Mensajes: 369
Antigüedad: 14 años, 5 meses Puntos: 6 | |
Respuesta: No logro solucionar mi problema; modificar el WHILE por otra cosa... Cita:
Iniciado por vgonga1986 Vale, revisando el código me he dado cuenta de un error. No se puede hacer así, porque pasas los datos por SESSION. Si te das cuentas, en SESSION sólo se van a quedar los datos (id, nombre y precio) del último producto del bucle, ya que los machacas.
Lo que tendrás que hacer es pasar un array con cada conjunto de datos, es decir, un array para id, otro para nombre y otro para precio. Usando la misma idea del array que se monta automático para cantidad. Algo así:
Código PHP:
Ver original<?php ?> <div class="producto"> <form action="agregar_producto.php" method="post"> <img src="IMAGENES DE SELECCION/editadas/IMG_3482.JPG" height="127" align="left"/> <?php $nombres = array(); // Esto crea un array vacío. echo "<h1>" .$row['nom_prod'], "</h1>"; $nombres[] = $row['nom_prod']; // Esto añade en la siguiente posición del array. ?> <p> Es una secreción de las glándulas hipofaríngeas de las abejas nodrizas. Todas las larvas son alimentadas con jalea real los tres primeros días de su vida, a partir de esa fecha únicamente la larva elegida reina se alimentará con ella, mientras que las abejas obreras dispondrán de una mezcla de polen, agua y miel. </p> Cantidad: <input name="cantidad[]" type="text" id="cantidad" size="2"/> <?php echo "# ID: " .$row['id_prod'], ", "; $ids[] = $row['id_prod']; echo "Precio: " .$row['precio_prod'], " "; $precios[] = $row['precio_prod']; } // Al final del bucle, los arrays se habrán llenado de datos y los guardas en la sesión: $_SESSION["nombres"] = $nombres; $_SESSION["ids"] = $ids; $_SESSION["precios"] = $precios; ?> <input type="submit" value="Añadir al Carro" /> <img src='images/carro_anadir.gif' /> </form> </div>
De esta forma en el PHP en el que trates el formulario tendrás 4 arrays:
Código PHP:
Ver original$ids = $_SESSION("ids"); $nombres = $_SESSION("nombres"); $precios = $_SESSION("precios"); $cantidades = $_POST("cantidad");
Y puedes poner un bucle tal que así:
Código PHP:
Ver originalfor ($i = 0; $i < count($ids); $i++) { echo "ID: " . $ids[$i]; echo "Nombre: " . $nombres[$i]; echo "Precio: " . $precio[$i]; echo "Cantidad: " . $cantidades[$i]; }
Ahora sí, un saludo. Wow!, Muchas gracias!!
Entiendo perfectamente la idea...desde ya la voy a empezar a implementar, que simple como lo planteaste!
Nuevamente te agradezco tu disposición, he aprendido mucho con tu post.
Saludos y gracias!! |