Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Añadir a la cesta "a pelo"

Estas en el tema de Añadir a la cesta "a pelo" en el foro de PHP en Foros del Web. Buenos días. Trabajo en una web que lleva mucho tiempo hecha y que arrastra una programación un tanto antigua. Está todo hecho "a mano", sin ...
  #1 (permalink)  
Antiguo 23/06/2015, 03:27
 
Fecha de Ingreso: marzo-2007
Mensajes: 59
Antigüedad: 17 años, 8 meses
Puntos: 0
Pregunta Añadir a la cesta "a pelo"

Buenos días.

Trabajo en una web que lleva mucho tiempo hecha y que arrastra una programación un tanto antigua. Está todo hecho "a mano", sin frameworks detrás ni nada por el estilo.

La manera en la que tienen hecho el carrito de la compra es que cuando entras en un artículo, hay varias "líneas" con cada código del artículo, con un campo para añadir la cantidad, y cuando se le da al botón de añadir a la cesta hay una función en javascript que recorre unos campos 'hidden' (todos con los mismos ids, omg, para cada línea) y añade aquellos que tienen un número en la cantidad (sólo hay un botón de añadir a la cesta para todos los elementos de esa página, y lo quieren así).

Por ejemplo, intentaré explicarlo con un esquema.
Supongamos un artículo "camiseta básica", cuando entro a la página tengo un formulario con:

ID Color Cantidad Marca(hidden) Sección(hidden)
1 Rojo Campo de texto Nike X
2 Verde Campo de texto Adidas Y
3 Azul Campo de texto Adidas Z


Así que nosotros vemos los campos ID, Color y Cantidad (los otros vienen ocultos) y por ejemplo, añadimos un 1 el el primer campo de texto y un 2 en el tercer campo de texto.

Repito que cada campo del formulario por cada línea tiene el mismo id y nombre (cielo santo). Así que serían 'cantidad', 'marca', 'seccion' según este ejemplo.

A continuación, una función JavaScript (horrible) recorre todos los elementos del formulario y añade aquellos que tienen una cantidad indicada en el campo de texto. Según el ejemplo que os he dicho añadiría:
1, 1, Nike, X
3, 2, Adidas, Z

Hasta la fecha he trabajado con webs basadas en frameworks u otras con una programación mucho más "moderna". Pero teniendo en cuenta que la opción de incorporar un framework a ésta ahora es inviable, mi pregunta sería:

¿Cuál sería la mejor opción para programar "a pelo" este "Añadir a la cesta"?
Una de las opciones que había pensado es trabajar con atributos "data", pero tengo ciertas dudas de si es la mejor elección.

Muchas gracias.
  #2 (permalink)  
Antiguo 24/06/2015, 00:56
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Añadir a la cesta "a pelo"

No veo la necesidad de javascript o atributos adicionales en HTML; según entendí, te piden que mantengas un listado de productos con un solo botón para añadirlos a la cesta. Basta con que uses dos inputs como array, uno para guardar id del producto y otro para la cantidad; ejemplo:

Código HTML:
Ver original
  1. <input type="hidden" name="id[]" value="id_de_producto" />
  2. ID, Nombre de producto, Precio, etc.
  3. <input type="text" name="cantidad[]" value="" />
  4.  
  5. <!-- Después de un listado de varios productos: -->
  6. <input type="submit" value="Agregar productos" />

Luego, en PHP:

Código PHP:
Ver original
  1. foreach($_POST['cantidad'] as $indice => $valor) {
  2.     if($valor > 0) {
  3.         // Se agregó este producto, hay que obtener ID
  4.         $id = $_POST['id'][$indice];
  5.         // Continúas con el proceso para agregarlo a la cesta
  6.     }
  7. }
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: carrito, carritodecompras, javascript
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 12:05.