Autocompletar de Jquery con PHP y MySql

Para usar un campo de texto que se autocompleté necesitas usar la librería JQUERY y JQUERY UI.

Por ejemplo tengo un campo de texto que quiero que se autocomplete con los nombres de los municipios de México; que en el campo se despliegue una lista de sugerencias con respecto a lo que tú vas tecleando

Aquí un ejemplo práctico.

Añadir la referencia a las librerias de jquery y jquery ui antes del </head>; esto en tu formulario o código html.

<link href="jquery/css/smoothness/jquery-ui-1.8.2.custom.css" rel="stylesheet" type="text/css" /> <script src="jquery/js/jquery-1.4.2.min.js" type="text/javascript"></script> <script src="jquery/js/jquery-ui-1.8.2.custom.min.js" type="text/javascript"></script> 

Ahora entre el </head> y el <body> coloque el siguiente script

 <script type="text/javascript">
 jQuery(document).ready(function(){
   $("#municipio").autocomplete({
      source:"municipios.php", 
      minLength:'4'
   });
 });
</script> 
En el formulario en mi input de tipo text

 <label for="municipio">Municipio</label><br />
<input autocomplete="on" id="municipio" minlength="4" name="municipio" size="35" type="text" /> 

minlength para que apartir de 4 caracteres me empiece a buscar o sugerir.Después creó un mi archivo php donde voy a consultar a la base de datos.

municipios.php

 
require_once("escolar_fns.php"); //CLASEPARA CONECTAR A LA BD 
if ( !isset ($_REQUEST['term'] ) ) 
    exit; //SI NO CONTIENE NADA 'term' detiene el script 
$sql = "Select id_municipio AS 'id', nombre_municipio AS 'Municipio' 
      From municipios 
      Where nombre_municipio like '%$term%' 
        Or id_municipio like '%$term%' Limit 10" ; 
$result = $conex->listaObjetos($sql); //CONSULTA A LA BASE DE DATOS 
if ( count($result) > 0 ) 
    exit; 
$data = array(); 
foreach ($result as $r) { 
//ALMACENA LOS DATOS EN UN ARRAY 
     $data[] = array ( 'label' => utf8_encode($r->Municipio),
        'value' =>utf8_encode( $r->;Municipio ) ); 
} 
// TRASFORMA EL ARREGLO EN FORMATO JSON
echo json_encode($data); 
flush();

Aqu&iacute; dejo un video que muestra su funcionamiento.

Comentarios

que tal, solo para pedirte que si puedes poner los archivos para descarga, seria muy util, y te lo agradeceria mucho

Imagen de peter

Pongo a la disposición de cualquiera los archivos en Github en la siguiente dirección: https://github.com/Sirpyerre/MonoformsExamples

Cualquier sugerencia es bien recibida. Saludos

No entiendo de donde viene la variable $term no hay ni un campo ni una variable declarada previamente haciendo un request al campo ... ???

Añadir nuevo comentario