Ver Mensaje Individual
  #53 (permalink)  
Antiguo 05/04/2021, 19:47
tuadmin
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años
Puntos: 120
Respuesta: live search php

En caso de necesitar algo moderno con HTML5 podrias optar por lo nativo
words.php
Código PHP:
Ver original
  1. <?php
  2. /**
  3.  * @autor tuadmin
  4.  */
  5. $words=array(
  6.     "alberto",
  7.     "ana",
  8.     "bart",
  9.     "barkley",
  10.     "canasta",
  11.     "canguro",
  12.     "candidato",
  13.     "canastasio",
  14.     "cancerbero",
  15.     "cantinero",
  16.     "canaston",
  17.     "canguron",
  18.     "cantinflas",
  19.     "cantinflon",
  20.     "pedro",
  21.     "pepe",
  22. );
  23. $palabra = @$_GET["buscar"] ?$_GET["buscar"]:'';
  24.  
  25. $lista_filtrada = array_filter($words,function($nombre) use( & $palabra){
  26.     return stripos($nombre,$palabra)===0;
  27. },);
  28. echo json_encode(array_slice($lista_filtrada,0,2,false));
  29. //var_dump($lista_filtrada);
index.html
Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="en">
  3.     <meta charset="UTF-8">
  4.     <meta http-equiv="X-UA-Compatible" content="IE=edge">
  5.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.     <title>autocompletado</title>
  7. </head>
  8.     <input type="text" list="autocompletado_ctm" placeholder="letras con a,b o c" id="campo_texto">
  9.     <datalist  id="autocompletado_ctm">    
  10.     </datalist>
  11.     <script>
  12.         var DataList= document.getElementById("autocompletado_ctm");
  13.         var Entrada = document.getElementById("campo_texto");
  14.         function total_palabras_visibles(palabra){
  15.             var contar = 0;
  16.             for(var i = 0;i<DataList.options.length;i++){
  17.                if(DataList.options[i].value.startsWith(palabra)){
  18.                    contar++;
  19.                }
  20.                
  21.            }
  22.            return contar;
  23.        }
  24.        Entrada.addEventListener("keyup",function(e){
  25.            //console.log(e);
  26.            
  27.            var buscar = Entrada.value.trim();
  28.            //si es mayor a 1 no ejecutamos el query
  29.            if(total_palabras_visibles(buscar)>1){
  30.                 //Seria util, en caso de tener mILES y MILES de nombres
  31.                 //console.log("no ejecutamos");
  32.                 return false;
  33.             }
  34.            
  35.             fetch("./words.php?buscar="+ encodeURIComponent(buscar)  ).then(function(stream){
  36.                 return stream.json();
  37.             }).then(function(array_php){
  38.                 //vaciamos la lista actual
  39.                 DataList.innerHTML='';
  40.                 for(var i = 0;i<array_php.length;i++){
  41.                    var opt = document.createElement('option');
  42.                    opt.innerText = array_php[i];
  43.                    DataList.append(opt);
  44.                }
  45.            });
  46.        })
  47.        
  48.    </script>
  49. </body>
  50. </html>
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9