Tengo la siguiente duda, les explico.
Tengo 5 productos distintos:
Producto A, B, C, D, E.
y tengo que armar 3 paquetes con esos productos, uno con 3 productos de los anteriores mencionados, otro con 5 y otro con 10.
Hasta ahí, no tengo ningún problema, todo bien con el siguiente código:
Código Javascript:
Ver original
// Añadir productos a paquete // Definir que tipo de paquete es (3, 5, 10) var miPaquete = new Array(); var elemento; var pUnidad = 0; function customPaqs(paq, id, producto){ if(miPaquete.length < paq){ miPaquete.push(producto); document.getElementById("myAdds").innerHTML = miPaquete; } else { alert("Máximo de artículos permitidos."); } }
Este botón es con el qué los agrego a la función:
Código PHP:
<input type="button" name="add" onclick="customPaqs(<?php echo $kit . ", " , $rowSelectProductsPaq['id_producto'] . ", '" . $rowSelectProductsPaq['prod_producto'] . "'"; ?>);" value="Add">
Código PHP:
$kit = El paquete que voy a armar (3, 5 o 10)
$rowSelectProductsPaq['id_producto'] = el identificador del producto
$rowSelectProductsPaq['prod_producto'] = el nombre del producto
Ahora, necesito incorporar la siguiente regla:
En el paquete 3, ningún producto puede exceder más de 2 unidades por producto, es decir,
Paquete de 3 -> - No puedo tener 3 unidades de un mismo producto en este paquete. Máximo por unidad 2
Paquete de 5 -> No puedo tener 4 unidades de un mismo producto en este paquete. Máximo por unidad 3
Paquete de 10 -> No puedo tener 4 unidades de un mismo producto en este paquete. Máximo por unidad 3
Intenté usar la siguiente función para identificar cuántas veces se repite un producto en el arreglo
elemento = miPaquete.indexOf(id);
Código Javascript:
Ver original
var miPaquete = new Array(); var repetido = 0; var pUnidad = 0; function customPaqs(paq, id, producto){ miPaquete.push(producto); document.getElementById("myAdds").innerHTML = miPaquete; if(paq == 3){ pUnidad = 2; } if(paq == 5){ pUnidad = 3; } if(paq == 10){ pUnidad = 4; } if(miPaquete.length < paq){ for(var i = 0; i < miPaquete.length; i++){ if( miPaquete.indexOf(producto, i) === -1){ repetido = 0; } else if( miPaquete.indexOf(producto, i) > -1 ) { repetido++; } } alert("El producto " + producto + " se repite " + repetido + " veces en el array"); } else { alert("Máximo de artículos permitidos."); } }
Sin embargo, no realiza la función correctamente, enviándome los siguientes mensajes:
Código:
¿Saben en dónde estoy cometiendo el error? Cuando agrego el primer producto, El A se repite 1 veces en el array Cuando agrego el segundo producto, El producto C se repite 3 veces en el array
De antemano, agradezco por sus comentarios. Sigo verificando.
Saludos!!