Ver Mensaje Individual
  #14 (permalink)  
Antiguo 01/04/2021, 17:11
pilucho
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: live search php

Cita:
Iniciado por Alexis88 Ver Mensaje
Si se te complica trabajar con ese código, tengo otro que hice con JavaScript nativo. Puedes copiarlo desde aquí.

Básicamente necesitas añadir en el documento HTML el archivo con dicho código:

Código HTML:
Ver original
  1. <script type="text/javascript" src="autocomplete-5.0.js" />

En otro archivo, necesitas crear la instancia del objeto:

Código Javascript:
Ver original
  1. let inputBuscar = document.querySelector("#idInput"), //<input> en donde se escribirá
  2.     autocomplete = new autocomplete(); //Instancia del objeto
  3.  
  4. autocomplete.load({
  5.     words: "buscar.php", //Archivo en donde se realizará la búsqueda
  6.     target: inputBuscar, //<input> en donde se escribirá y mostrarán los resultados
  7.     value: "name" //Nombre del índice que contiene el dato a mostrarse
  8. });

Y un archivo en el lado del servidor en donde se realizará la búsqueda en la base de datos:

Código PHP:
Ver original
  1. $dato = $_GET['term'];
  2. $query = "SELECT fullName FROM employees WHERE name LIKE '%$dato%'";
  3. $results = mysqli_query($connection, $query);
  4. $respuesta = [];
  5.  
  6. if (mysqli_num_rows($results)){
  7.     while ($rows = mysqli_fetch_assoc($results)){
  8.         $respuesta[] = ['name' => $rows['fullName']];
  9.     }
  10. }
  11.  
  12. echo json_encode($respuesta);

En síntesis, se realiza una búsqueda en el archivo PHP a partir del dato escrito en la caja de texto, y todos los resultados se guardan en un arreglo que luego se devuelve como un objeto JSON, el cual, finalmente, será empleado por el objeto autocomplete para mostrar los datos debajo de la caja de texto en donde se escribió el dato a buscar.

No olvides que el de arriba es código de ejemplo. Es necesario que lo adaptes a lo que tienes para que funcione.







No me funciono




Código Javascript:
Ver original
  1. let inputBuscar = document.querySelector("#idInputA"), //<input> en donde se escribirá
  2.     inputFinal = document.querySelector("#idInputB"), //<input> en donde se mostrará el dato seleccionado de la lista desplegable
  3.     autocomplete = new autocomplete(); //Instancia del objeto
  4.  
  5. autocomplete.load({
  6.     words: "buscar2.php", //Archivo en donde se realizará la búsqueda
  7.     target: inputBuscar, //<input> en donde se escribirá y mostrarán los resultados
  8.     value: "nombre", //Nombre del índice que contiene el dato a mostrarse
  9.     select: function(data){
  10.         inputFinal.value = data.nombre; //Aquí se mostrará el dato seleccionado de la lista desplegable
  11.     }
  12. });


Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang = "es">
  3.     <head>
  4.         <meta charset = "utf-8" />
  5.         <title>Buscador</title>
  6.         <link rel = "stylesheet" type = "text/css" href = "jquery-ui-css.css" />
  7.         <link rel = "stylesheet" type = "text/css" href = "style.css">
  8.     </head>
  9.     <body>
  10.         <section id = "main">
  11.             <label for = "buscar">Buscar:</label>
  12.             <input type = "text" name = "buscar" id = "buscar" placeholder = "Ingresa el dato a buscar" autofocus />
  13.         </section>
  14.         <section id = "response">
  15.             <img />
  16.             <div id = "datos">
  17.                 <header>
  18.                     <h1></h1>
  19.                 </header>
  20.  
  21.                 <p>
  22.                     <label class = "ref">Nombre</label>
  23.                     <input type = "text" name = "nombre" class = "dato" />
  24.                 </p>
  25.                
  26.                 <p>
  27.                     <label class = "ref">Apellido:</label>
  28.                     <label class = "dato"></label>
  29.                 </p>
  30.  
  31.                 <p>
  32.                     <label class = "ref">E-Mail:</label>
  33.                     <label class = "dato"></label>
  34.                 </p>
  35.             </div>
  36.         </section>
  37.         <script type = "text/javascript" src = "jquery.js"></script>
  38.         <script type = "text/javascript" src = "jquery-ui.js"></script>
  39.         <script type = "text/javascript" src = "script2.js"></script>
  40.         <script type = "text/javascript" src = "autocomplete-5.0.js"></script>
  41.     </body>
  42. </html>




Código PHP:
Ver original
  1. <?php
  2. $dato = $_GET['term'];
  3. $query = "SELECT * FROM buscar WHERE nombre LIKE '%$dato%'";
  4. $results = mysqli_query($connection, $query);
  5. $respuesta = [];
  6.  
  7. if (mysqli_num_rows($results)){
  8.     while ($rows = mysqli_fetch_assoc($results)){
  9.         $respuesta[] = ['nombre' => $rows['nombre']];
  10.     }
  11. }
  12.  
  13. echo json_encode($respuesta);
  14. ?>