Supongamos que tenemos esta estructura:
Código HTML:
Ver originalIngrese el nombre:
<input type = "text" id = "nombre" />
Seleccione el curso:
Si lo que buscas es que se muestren a todas las personas cuyo nombre coincida con el escrito en la caja de texto y lleven el curso que seleccionaste en el combo, puedes hacer algo como esto:
Código Javascript
:
Ver originalvar input = document.querySelector("#nombre"),
select = document.querySelector("#curso"),
cursos = [
['0101','Deporte'],
['0201','Informática']
],
datos = [
['0101','Manuel'],
['0101','Antonio'],
['0101','Juan'],
['0201','Juan'],
['0201','Antonio'],
['0201','Luis']
],
buscar = function(){
var nombre = input.value,
curso = select.value,
nombreCurso = select.options[select.selectedIndex].innerHTML,
final = [];
for (var i = 0, l = datos.length; i < l; i++)
if (datos[i][1] == nombre)
for (var j = 0, m = cursos.length; j < m; j++)
if (cursos[j][0] == curso && datos[i][0] == curso)
final.push(datos[i][1]);
return console.log(final.join(" y ") + (final.length > 1 ? " tienen " : " tiene ") + nombreCurso);
};
Primero, tomo a la caja de texto, al combo y declaro a los arrays que contienen a los arrays con los datos y una función que realizará la búsqueda. En la función, tomo el valor escrito en la caja, el valor seleccionado en el combo y el contenido del mismo, además, declaro un array en el que irán los datos que coincidan en la búsqueda.
Recorro al array con los arrays de los nombres de las personas. En cada iteración, verifico si el nombre del array actual en la iteración, coincide con el escrito en la caja de texto. De ser así, paso a recorrer al array que contiene a los arrays con los nombres de los cursos y, en cada iteración, verifico si el código del curso coincide con el seleccionado en el combo y si el código de la coincidencia encontrada en el primer bucle (el que itera al array
datos
), es igual al curso seleccionado. De cumplirse todo esto, inserto el nombre de la persona en el array
final
y una vez que termine la búsqueda, retorno a los datos encontrados, mostrándolos en consola.
Por ejemplo, si busco a 'Juan' y selecciono 'Deporte', al haber dos personas con el nombre 'Juan' pero solo una de ellas lleva 'Deporte', el mensaje que se muestre será así:
Ahora que, si deseas, para saber de qué Juan se trata, podrías mostrar también el código del curso que le asignaste.
Saludos