Ver Mensaje Individual
  #5 (permalink)  
Antiguo 13/10/2014, 06:28
pedromir
 
Fecha de Ingreso: enero-2014
Mensajes: 91
Antigüedad: 10 años, 3 meses
Puntos: 2
Respuesta: Buscar dos elementos en un array y mostrar las coincidencias

He modificado algo tu código para adaptarlo al mío, pero no funciona, he incluído también un código para que haga la búsqueda sólo por la caja de texto, o sólo por el select y por estas dos búsquedas funciona perfectamente, pero cuando busco por el texto y el select conjuntamente, me aparece el nombre buscado siempre, da igual lo que haya seleccionado en el select, es como si sólo buscara por texto.

Código Javascript:
Ver original
  1. function busqueda(){
  2.     var textoBusqueda = 'Ingresar texto de b\u00fasqueda';
  3.     var cadena=txtBuscar.value.toLowerCase();
  4.     //Esto viene de un select que creo dinámicamente utilizando el array cursos
  5.     var cadenaCursos = listaCursos.options[listaCursos.selectedIndex].value.toLowerCase(); 
  6.     var datosCursos = datos[i][0].toLowerCase().indexOf(cadenaCursos)>=0;  
  7.     var n = datos.length;  
  8.     buscarNombre = []; 
  9.        
  10.     for (var i=0;i<n;i++)  
  11.     {
  12.     buscaren = reemplazaAcentos(datos[i][1])
  13.     txtBuscado = reemplazaAcentos(cadena)
  14.     //Para buscar utilizando la caja de texto sólo 
  15.         if (buscaren.toLowerCase().indexOf(txtBuscado)>=0)
  16.         {
  17.             buscarNombre.push(datos[i]);
  18.         }
  19.     //Para buscar utilizando el select sólo
  20.         else if (datos[i][0].toLowerCase().indexOf(cadenaCat)>=0 && txtBuscar.value == textoBusqueda )
  21.         {
  22.             buscarNombre.push(datos[i]);
  23.         }        
  24.     //Para hacer la búsqueda con un texto en la caja y una opcion seleccionada en el select
  25.         else if (datos[i][1] == buscaren.toLowerCase().indexOf(txtBuscado)>=0)
  26.                  
  27.                 for(j=0;j<cursos.length;j++){
  28.                    
  29.                     if(datosCursos == cadenaCursos && cursos[j][0]==cadenaCursos)                  
  30.                     buscarNombre.push(datos[i]);                   
  31.                        
  32.             }
  33.     }
  34.     txtResultados.innerHTML=buscarNombre.length;
  35.     mostrarResultados(0);          
  36. }