Tengo un array de 2 dimensiones y quiero que me busque en dicho array el texto introducido en el input de un formulario, pero según el input en el que se haya introducido el texto me lo tiene que buscar en un índice o en otro y si ha escrito en los dos input, en este caso lo tiene que buscar en los dos índices y mostrar los resultados que cumplan las dos condiciones
Este es el formulario resumido, sólo he puesto 2 input
Código HTML :
<form name='formu1' id='formu1'> <label>Nombre: </label><input type="text" name="nombre" id="nombre"> <label>Apellido: </label><input type="text" name="apellido" id="apellido"><br /><br /> </form> <input type="button" onclick="busqueda();" name="procesar" value="procesar">
Código Javascript :
var datos = new Array(); datos =[["Jose","Naranjo"], ["Jose","Perez"], ["Antonio","Garcia"], ["Antonio","Moreno"]]; function elementosForm() { var mostrarName = ""; var los_elementos = document.getElementById('formu1').elements; for (i=0; i<los_elementos.length; i++) { if(los_elementos[i].value == ''){ mostrarName += ''; }else{ mostrarName += los_elementos[i].name + '&&'; } } return mostrarName }
Con esta función lo que hago es recorrer el formulario y que me muestre los name de los input que tengan texto
Código Javascript :
function busqueda(){ var txtNombre = document.getElementById("nombre").value; var txtApellido = document.getElementById("apellido").value; var n = datos.length; buscarNombre = []; for (var i = 0; i < n; i++) { var nombre = datos[i][0].toLowerCase().indexOf(txtNombre)>=0; var apellido = datos[i][1].toLowerCase().indexOf(txtApellido)>=0; var datosBusqueda = elementosForm(); //var datosBusqueda = nombre && apellido if (datosBusqueda){ buscarNombre.push(datos[i]); } } alert(buscarNombre) }
Y con esta función hago la búsqueda según el name o los names que reciba de la otra función, por ejemplo si recibo el name nombre, var datosBusqueda debería ser igual a la variable nombre, y realizar la búsqueda en datos[i][0] si recibo apellido, pues igual a la variable apellido y hacer la búsqueda en datos[i][1], y si recibo los names, nombre && apellido, var datosBusqueda debería ser igual a las variables nombre && apellido, para que me busque en datos[i][0] && datos[i][1] pero esto no se como hacerlo