Ver Mensaje Individual
  #13 (permalink)  
Antiguo 28/09/2006, 15:13
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
entonces envio Cantidad [5,10,2...etc] a la clase para poder modificar las cantidades de los items, el problema radica en como insertar esas cantidades en los items que son ? seria aconsejable enviar tambien enviar el id del producto ?
Si, es necesario.

Para eso usa un campo extra "hidden" (oculto) en tu formulario para propagar ese dato en otro array "paralelo" al de tus cantidades.

(ajustalo .. sería algo así:)

Código PHP:
<input type="hidden" name="ids[]" value="$id"
Ahí tendrás dos arrays que recorrer con un bucle for() con mismo indice para ambos arrays y así obtener tu par "id -> cantidad" para luego poder empezar a actualizar tus "arrays" correspondientes.

Cita:
O manejar el tema con un "flag" para usar el mismo código para las dos funcionalidades: editar y "ver" sólo el carrito (esto de "ver" el carrito te servirá para mostar lo que finalmente quedó de tu carrito al ser ingresado y aceptado lo que este diga).
Un "flag" es una "bandera" .. una variabel que indique un "estado". En este caso esa variable que va actuar como bandera dirá algo tipo "1 -> presenta el formulario" ó "0 -> no lo presentes" (True/false) para así poder usar el mismo código de tu función "imprime_carrito()" pues el código de esta y el de "sólo ver los datos sin opción a modificarlos" es un 99% igual.

Por ejemplo .. sería algo tipo:
Código PHP:
function imprime_carrito($edita=FALSE) {
   
// etc código
  
if ($edita){
     echo 
"<input type=\"text\" name=\"cantidad[]\" value=\"".$this->array_cantidad_prod[$i]."\">";  
  } else {
     echo 
$this->array_cantidad_prod[$i];
  }
  
// etc código

Sólo si llamamos al método en cuestión tipo

$carrito->imprime_carrito(TRUE);

Se mostraría la línea del input, sino .. se muestra tal cual (com lo usabas al principio).

Esto no es más que una opción .. perfectamente puedes "repetir" código y crear un nuevo método "cortando y pegando" + le pones otro nombre y listo .. Pero así .. un cambio en la "presentación" de esos datos (de ese HTML que ahí metes) involucraría cambiar en "dos" sitios cuando debe ser siempre en UNO.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.