Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/02/2009, 16:32
Avatar de tangela
tangela
 
Fecha de Ingreso: octubre-2004
Mensajes: 31
Antigüedad: 19 años, 8 meses
Puntos: 0
Respuesta: Utilizar autocompletado con varios text.

Pues tengo una parte de la solución:
En el código javascript comenté la línea 8 de la funcion asignaVariables:
Código javascript:
Ver original
  1. //inputLista=document.getElementById("input_2");
y esta misma declaración la introduje en el código html de definición de cada uno de los text:
Código html:
Ver original
  1. <input name="Nome" type="text" id="input_2" autocomplete="off" class="input" size="85" width="100px" onfocus="
  2.               inputLista=document.getElemetById("input_2")
  3.                if (document.getElementById('lista').childNodes[0] !=null && this.value !=''){
  4.                filtraLista(this.value);
  5.                formateaLista(this.value);
  6.                reiniciaSeleccion();
  7.                document.getElementById('lista').style.display='block';
  8.                }"
REpitiendo esto en cada uno de los cuadros de texto y asignando un nuevo valor a inputLista y modificando el id del imput se van rellenando con la lista de autocompletar.

Esta es la parte de la solución. La otra parte no la tengo clara, y lo que he hecho ha sido una chapuza porque contradice los principios de economía y reutilización de código propios de la programación.
1.- Tripliqué la funcion rellenaLista con distintos nombres y llamando a diferentes páginas php en función del campo y tabla que quiera incorporar:
Código javascript:
Ver original
  1. ajax.open("POST", "proceso.php?", true);

2.- Cambié el código en el evento onKeyUp del input (el que llama a la función de llenado de la lista), llamando a una función diferente en cada caso, según lo explicado en el punto anterior
Código javascript:
Ver original
  1. onkeyup="if (navegaTeclado(event)==1){rellenaLista();}"></input>

Así, repitiendo el proceso para cada text, consigo que cada uno cargue la lista que necesito.
Soy plenamente consciente de que esto no es un ejemplo de programación, pero de momento hace lo que necesito y espero mejorarlo pronto.
Debo hacer notar que esta aplicación se utiliza en un ámbito muy reducido y por pocas personas, por lo que la economía de recursos no es un aspecto primordial.

Se admiten sugerencias para mejorar este ¿codigo?
Saludos.