Hola makeitslow!
Ahora lo entiendo!
Pues yo utilizo "script.aculo.us" para hacer este tipo de autocompletes. Te explico cómo lo hago yo para ver si te sirve y puedes utilizarlo.
Primero tienes que descargarte las librerias de script.aculo.us (
http://script.aculo.us/). En el zip hay muchas cosas pero lo que te hace falta en un principio son los archivos prototype.js y scriptaculous.js. Los dos archivos se encuentran en el directorio
lib y
src respectivamente.
Copia estos dos archivos en algún lugar dentro del directorio de tu web (dónde acostumbres a dejar los archivos javascript).
Bien, ahora en tu archivo principal (el que contiene el formulario), incluye las librerías javascript en el
head. Así:
Código HTML:
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="scriptaculous.js"></script>
En "src" utiliza la ruta exacta a tus archivos.
Ahora hay que incluir los "inputs" necesarios. En tu caso: uno para nombre, otro para apellido y otro para dirección.
Código HTML:
<p>
<input type="text" id="nombre" name="nombre" autocomplete="off"/>
<div id="nombre_choices" class="autocomplete"></div>
</p>
<p>
<input type="text" id="apellidos" name="apellidos" autocomplete="off"/>
<div id="apellidos_choices" class="autocomplete"></div>
</p>
<p>
<input type="text" id="direccion" name="direccion" autocomplete="off"/>
<div id="direccion_choices" class="autocomplete"></div>
</p>
Por último, hay que incluir el código javascript que realiza las llamadas a los scripts (PHP, en tu caso) que devuelven los valores.
Código HTML:
<script type="text/javascript">
new Ajax.Autocompleter("nombre", "nombre_choices", "nombre.php", {});
new Ajax.Autocompleter("apellidos", "apellidos_choices", "apellidos.php", {});
new Ajax.Autocompleter("direccion", "direccion_choices", "direccion.php", {});
</script>
Cada uno de los archivos PHP devolverá una lista HTML (<ul>,<li>...) con al información. Puedes utilizar la variable $_POST["id_del_input"], para obtener los caracteres que ha insertado el usuario de momento para limitar tu búsqueda.
Por ejemplo (nombre.php):
Código PHP:
<?php
$prefix = $_POST["nombre"];
$query = "SELECT * FROM tabla WHERE nombre LIKE '$prefix%'";
/* ejecutar query obtener resultados
y devolver lista*/
echo "<ul><li>MARCELO</li><li>MARIA</li><li>MARCO</li></ul>";
return 1;
?>
Suerte! Y saludos!
PD: Aquí tienes más información sobre la clase Ajax.autocompleter para que puedes pasarle más parámetros como, por ejemplo, número de caracteres mínimos para llamar a los archivos de búsqueda.
http://wiki.script.aculo.us/scriptac....Autocompleter