Como hacer un autocompletador con AJAX y PHP

Hola a todos, hoy os voy a explicar como podemos hacer un autocompletador con AJAX y PHP.

Si queremos crear un autocompletador necesitamos lo primero una base, os propongo esta:

DataList es un elemento de HTML5 que lo que hace es mostrar las coincidencias de las opciones que haya dentro del datalist. Ahora mismo lo tenemos vacio, porque nosotros desde JavaScript lo vamos a generar.

El evento onkeyup salta al escribir una letra en el input, que llamara a la función buscarPersonas.

Para que funcione el datalist, se debe asociar al input mediante el atributo list en el input y el id del datalist.

Ahora en el fichero javascript:

Aquí cogemos el valor del input y cuando la longitud es mas de 3, aunque esto es opcional.

Le pongo la url del fichero PHP y le añado el parámetro búsqueda el valor que hemos cogido del input.

Dentro de la respuesta recibida, convierto la respuesta e inserto los nombres recogidos en elementos option dentro del datalist.

Si necesitáis mas detalles de como hacer una llamada AJAX, os dejo el manual donde lo vimos:

Como enviar una petición AJAX con POST con parametros

En el PHP tendremos esto:

Nos conectamos a nuestra base de datos, recordar que esto ya lo vimos, os dejo el manual:

https://discoduroderoer.es/conectar-mysql-con-php/

Recojo el valor de búsqueda que le he pasado (quito comillas simples para evitar problemas en la consulta).

Ejecuto la consulta, recojo los datos y con json_encode lo transformo a JSON para que lo pueda recoger el AJAX.

Necesitamos una base de datos donde recoger los datos, os la paso yo por aquí:

Este es el resultado final:

Os dejo un vídeo explicándolo con mas detalle:

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


Warning: Trying to access array offset on value of type null in /home2/discodur/public_html/discoduroderoer/wp-content/themes/disto/single.php on line 539