AJUDA! Preciso fazer uma validação

  • Autor Autor Augussto
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
Augussto

Augussto

Curioso
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
Hola quería pedir una ayuda para hacer una validación en js.
Lo que necesito hacer es que:

El cliente se encuentra con una serie de productos por ejemplo: H1, H5, H6, H3, H2, H4, H9, H10
El cliente puede mantener un producto seleccionado y hacer un drop en una caja, la caja almacenara en un array los productos, en el orden que en el cliente los soltaron.
La validación que necesito hacer es la siguiente:
  • Que los productos sean mayor o igual a tres ( >= 3)
  • Que los productos sigan un orden: Por ejemplo que si selecciono el producto H3 el siguiente que selecciono sea el H4, luego el H5 y así sucesivamente, en caso de no cumplirse esta condición de un error!

A lo que voy es que no logro hacer esa validación ya que los productos seleccionados por el cliente tienen que seguir un orden que esta establecido.
Esta es una parte del array con los nombres del producto y ordenados: XS, BRW, LSO, XXM, XLA, SSO, BBA, SX
El cliente si selecciono LSO los siguientes dos que tiene que seleccionar son XXM, XLA si no es así mostrara un error.

Dejo otro dato: Los productos se traen en un array desde la db y la caja de para soltar los productos da como resultado un array, seria como comparar dos arrays.

Si alguien me puede dar una mano o algún lugar por donde leer o informarme estaría muy agradecido!
Saludos!
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
La verdad que me perdí un poco pero podrías asociar el valor con un número

XS => 1, BRW => 2, LSO => 3, XXM => 4...

Y así al seleccionar uno, pueda identificar cuáles son menores o mayores. O bien, ordenar el array por valores y comprobar el index, que sería más complicado supongo.
 
mmm si estan en un array, solo recorre el array viendo si coinciden los demas... primero necesitas saber desde donde selecciono...en base a tu ejemplo LSO seria el indice 2, por lo que iniciarias la validacion desde el indice 2...
luego vas con un for o foreach siguiendo el array de items seleccionados y viendo si coinciden o no... basiacmente comparas el array principal con el array de los productos seleccionados

PHP:
<script>
var arrayp = ["XS", "BRW", "LSO", "XXM", "XLA", "SSO", "BBA", "SX"]; //array principal
var arrays = ["LSO", "XXM", "XLA"]; //array seleccionado
var arraym = ["LSO", "XS", "XLA"]; //array test error

//primero buscar el id
var inicial = 0;
for(var i=0;i<arrayp.length;i++){
	if(arrayp[i]===arrays[0]){ inicial=i; break; }
}

//segundo comparar a ver si estan bien
var error = false;
for(var i=0;i<arrays.length;i++){
	if(arrayp[inicial]!==arrays[i]){ error=true; break; }
    	inicial++;
}

if(error){
	alert("Error");
}else{
	alert("Bien");
}
</script>

ahi en el script mostrara Bien... pero si cambias por arraym, mostrara Error...
PHP:
for(var i=0;i<arraym.length;i++){
	if(arrayp[inicial]!==arraym[i]){ error=true; break; }
    	inicial++;
}

desde ya se puede mejorar mas...pero es una idea para partir
 
mmm si estan en un array, solo recorre el array viendo si coinciden los demas... primero necesitas saber desde donde selecciono...en base a tu ejemplo LSO seria el indice 2, por lo que iniciarias la validacion desde el indice 2...
luego vas con un for o foreach siguiendo el array de items seleccionados y viendo si coinciden o no... basiacmente comparas el array principal con el array de los productos seleccionados

PHP:
<script>
var arrayp = ["XS", "BRW", "LSO", "XXM", "XLA", "SSO", "BBA", "SX"]; //array principal
var arrays = ["LSO", "XXM", "XLA"]; //array seleccionado
var arraym = ["LSO", "XS", "XLA"]; //array test error

//primero buscar el id
var inicial = 0;
for(var i=0;i<arrayp.length;i++){
	if(arrayp[i]===arrays[0]){ inicial=i; break; }
}

//segundo comparar a ver si estan bien
var error = false;
for(var i=0;i<arrays.length;i++){
	if(arrayp[inicial]!==arrays[i]){ error=true; break; }
    	inicial++;
}

if(error){
	alert("Error");
}else{
	alert("Bien");
}
</script>

ahi en el script mostrara Bien... pero si cambias por arraym, mostrara Error...
PHP:
for(var i=0;i<arraym.length;i++){
	if(arrayp[inicial]!==arraym[i]){ error=true; break; }
    	inicial++;
}

desde ya se puede mejorar mas...pero es una idea para partir

Millones de gracias, esto es lo que necesitaba :love_heart:
 
Voltar
Topo