Foros del Web » Programando para Internet » Javascript »

Compara dos select en javascript

Estas en el tema de Compara dos select en javascript en el foro de Javascript en Foros del Web. Hola amigos de foros web tengo una duda quisiera saber si me pueden ayudar lo que pasa es que soy nuevo en javascript y necesuito ...
  #1 (permalink)  
Antiguo 04/08/2014, 19:08
 
Fecha de Ingreso: agosto-2014
Mensajes: 19
Antigüedad: 9 años, 8 meses
Puntos: 0
Compara dos select en javascript

Hola amigos de foros web tengo una duda quisiera saber si me pueden ayudar lo que pasa es que soy nuevo en javascript y necesuito algo de ayuda.
Tengo dos select que se llenan con funciones de php recorriedo los resultados de las consultas con un foreach.
Ambos select se llenan sin problemas.
El tema es que quisiera borrar los elementos del select 1 cuyos ids no coinciden con el select 2.
aqu i les dejo mi codigo agradeceria cualquier ayuda

Saludos


var convenio = document.getElementById('select_convenio').value;
var convenio2= document.getElementById('select_convenio_2').value ;


for(i=0;i<convenio.length;i++){
var opt=convenio[i];
for(j=0;j<convenio2.length;j++){
var opt2=convenio2[j];
if(opt.value!=opt2.value){
id=opt.value;
alert(id);
opt.remove(id);}
}
//opt.remove(id);}
}
  #2 (permalink)  
Antiguo 04/08/2014, 20:55
Avatar de manuparquegiralda  
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 241
Antigüedad: 11 años, 10 meses
Puntos: 39
Respuesta: Compara dos select en javascript

Creo que lo que tienes que hacer es impedir en PHP directamente que se rellenen los selects con las condiciones que tu quieras te va a resultar mucho más facil que hacerlo por javascript.

Igualemente la función está mal, porque no estás cogiendo los elementos si no los values de los elementos si he entendido bien tu pregunta creo que buscas algo así:

Eliminar los options del selec_convenio que no estén en el select_convenio_2

Código Javascript:
Ver original
  1. var convenio = document.getElementById('select_convenio').childNodes;
  2. var convenio2 = document.getElementById('select_convenio_2').childNodes;
  3. var opt;
  4. var opt2;
  5. var existe;
  6.  
  7. for(i=0 ; i<convenio.length ; i++){
  8.         existe = "no";
  9.     if(convenio[i].nodeType != 3){
  10.                 opt = convenio[i].id;
  11.         for(j=0;j<convenio2.length;j++){
  12.                         if(convenio2[i].nodeType != 3){
  13.                     opt2 = convenio2[j].id;
  14.                     if(opt == opt2){
  15.                                        existe = "si";
  16.                                        break;                                                                  
  17.                     }
  18.                         }
  19.         }
  20.                 if(existe == "no"){
  21.                         document.getElementById('select_convenio').removeChild(convenio[i]);
  22.                 }
  23.     }
  24. }
__________________
Diseño Web - Arisman Web
  #3 (permalink)  
Antiguo 04/08/2014, 22:13
Avatar de Nagatox  
Fecha de Ingreso: diciembre-2013
Ubicación: Chile
Mensajes: 34
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: Compara dos select en javascript

la respuesta anterior esta bastante buena y precisa

saludos
  #4 (permalink)  
Antiguo 05/08/2014, 08:23
 
Fecha de Ingreso: agosto-2014
Mensajes: 19
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Compara dos select en javascript

Gracias por tu respuesta manuparquegiralda

he corregido algunas cosas minimas y me ha funcionado eres un CRACK!! Gracias de verdad te lo agradezo me has ayudado a solucionar un gran problema
lo unico que cambie fue

opt = convenio[i].id;
por
opt = convenio[i].value;

y opt2 = convenio2[i].value;
por
opt2 = convenio2[j].value;

Saludos

Última edición por alejandrorene; 05/08/2014 a las 08:30

Etiquetas: funcion, php, select
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 11:29.