Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/03/2021, 18:30
pilucho
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
live search php

Hola Grupo del foro

Este código funciona, despliega una lista en una <tabla> "fetch.php" al escribir en el campo de búsqueda
posteriormente en esa lista se hace clic, y muestra el resultado seleccionado en los inputs.

La, idea es que en el campo de texto, al realizar la búsqueda por nombres... me de el resultado
como un "live search" mostrando el contenido en el campo de texto. y no como una <tabla> fuera del campo de búsqueda.
de este modo al hacer clic al nombre muestre en los campos de inputs.

espero me puedan colaborar con la ayuda. si existe otro método o código estoy dispuesto aprender de ello. gracias.





fetch.php
Código PHP:
Ver original
  1. <?php
  2. include('config.php');
  3. $mydb = new db();
  4. $conn = $mydb->connect();
  5.  
  6. if(isset($_POST["query"]))
  7. {
  8.  
  9. $q = $_POST["query"];
  10.    
  11. $results = $conn->prepare("SELECT * FROM customer WHERE customerFN LIKE '%" . $q . "%'
  12. OR customerID LIKE '%".$q."%'
  13. OR customerLN LIKE '%".$q."%'
  14. OR customerAddress LIKE '%".$q."%'
  15. OR customerAge LIKE '%".$q."%'
  16. ");
  17.  
  18. }
  19. else
  20. {
  21.  
  22.  $results = $conn->prepare("SELECT * FROM customer ");
  23.  
  24. }
  25.  
  26. $results->execute();
  27. while($row = $results->fetch(PDO::FETCH_ASSOC))
  28. {
  29.      echo '<tr onclick="javascript:showRow(this);">' .
  30.     '<td>' . $row['customerID'] . '</td>' .
  31.     '<td>' . $row['customerFN'] . '</td>' .
  32.     '<td>' . $row['customerLN'] . '</td>' .
  33.     '<td>' . $row['customerAge'] . '</td>' .
  34.     '</tr>';
  35. }
  36. ?>

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. $(document).ready(function(){
  3.  
  4.  load_data();
  5.  
  6.  function load_data(query)
  7.  {
  8.   $.ajax({
  9.    url:"fetch.php",
  10.    method:"POST",
  11.    data:{query:query},
  12.    success:function(data)
  13.    {
  14.     $('#result').html(data);
  15.    }
  16.   });
  17.  }
  18.  
  19.  $('#search_text').keyup(function(){
  20.   var search = $(this).val();
  21.   if(search != '')
  22.   {
  23.    load_data(search);
  24.   }
  25.   else
  26.   {
  27.    load_data();
  28.   }
  29.  });
  30. });
  31.  
  32. function showRow(row)
  33. {
  34.     var x=row.cells;
  35.     document.getElementById("custID").value = x[0].innerHTML;
  36.     document.getElementById("fname").value = x[1].innerHTML;
  37.     document.getElementById("lname").value = x[2].innerHTML;
  38. }
  39. </script>

Código HTML:
Ver original
  1. <script src="js/jquery-1.11.3-jquery.min.js"></script>
  2.  
  3. <!-- BUSQUEDA Y DESPLIEGA EL RESULTADO EN UNA LISTA  -->
  4. <div class="form-group">
  5.     <div class="input-group">
  6.         <span class="input-group-addon">Search</span>
  7.         <input type="text" name="search_text" id="search_text" placeholder="Search ..." class="form-control" />
  8.     </div>
  9. </div>
  10. <!-- EL RESULTADO ES ASÍ  -->
  11. || ID   ||   FIRSTNAME    ||     LASTNAME     |||
  12. || 1    ||     Lily       ||    James         |||
  13. || 2    ||     Pablo      ||    Marmol        |||
  14. || 3    ||     Pedro      ||   Pica Piedra    |||
  15.  
  16.  
  17.  
  18. <!-- LA IDEA ES QUE SE VEA EN EL MISMO CUADRO DE TEXTO COMO UN LIVE SEARCH  -->
  19. En el campo de texto Busco a: Pablo
  20. Resultado: Lista de palabras con 'P'
  21. ---------------------
  22. |   Pablo Marmol    | <!-- CLIC AL NOMBRE PARA MOSTRAR EN LOS INPUT'S -->
  23.  
  24.  
  25. <!-- AQUI EL RESULTADO AL HACER CLIC AL NOMBRE -->
  26. <form class="form-horizontal" method="post">
  27.     <div class="form-group">
  28.         <label class="control-label col-sm-3">ID:</label>
  29.             <div class="col-sm-9">
  30.                   <input type="text" class="form-control" id="custID" required placeholder="Customer ID" name="custID">
  31.             </div>
  32.     </div>
  33.     <div class="form-group">
  34.         <label class="control-label col-sm-3">First Name:</label>
  35.             <div class="col-sm-9">
  36.                   <input type="text" class="form-control" id="fname" required placeholder="First Name" name="fname" >
  37.             </div>
  38.     </div>
  39.     <div class="form-group">
  40.         <label class="control-label col-sm-3">Last Name:</label>
  41.             <div class="col-sm-9">
  42.                   <input type="text" class="form-control" id="lname" required placeholder="Last Name" name="lname">
  43.             </div>
  44.     </div>
  45. </form>