Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: the_sheriff_pino en 9 Mayo 2013, 13:01 pm



Título: Combinar consultas dinámicas jQuery <Fácil>
Publicado por: the_sheriff_pino en 9 Mayo 2013, 13:01 pm
Saludos foreros!

Os comento, tengo un pequeño filtro, de dos campos que quiero combinar sus resultados para mostrar los campos de una base de datos de mysql.
(Con un solo campo para filtrar me funciona correctamente)
Cuando escribo en el campo Nombre me filtra por nombre, si escribo en el campo Poblacion, filtra por poblacion y omite el campo Nombre.

El fallo debe de estar en el script de ajax, y sobre todo en la línea donde aparece #resultado.
Código
  1. <html>
  2. <head>
  3. <title>Búsqueda</title>
  4. <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
  5. <script type="text/javascript">
  6. $(document).ready(function() {
  7. $("#nombre").keydown(
  8. function(event)
  9. {
  10. var nnombre = $("#nombre").attr("value");
  11. $("#resultado").load('busqueda.php',{nombre:nnombre});
  12. }
  13. );
  14.  
  15. $(document).ready(function() {
  16. $("#nombre").keyup(
  17. function(event)
  18. {
  19. var nnombre = $("#nombre").attr("value");
  20. $("#resultado").load('busqueda.php',{nombre:nnombre});
  21. }
  22. )
  23.  
  24. $("#poblacion").keydown(
  25. function(event)
  26. {
  27. var npoblacion = $("#poblacion").attr("value");
  28. $("#resultado2").load('busqueda.php',{poblacion:npoblacion});
  29. }
  30. );
  31. });
  32. });
  33. $(document).ready(function() {
  34. $("#poblacion").keyup(
  35. function(event)
  36. {
  37. var npoblacion = $("#poblacion").attr("value");
  38. $("#resultado2").load('busqueda.php',{poblacion:npoblacion});
  39. }
  40.  
  41. );
  42.  
  43. });
  44. </script>
  45. </head>
  46. <body>
  47. Nombre: <input type="text" name="nombre" id="nombre" autocomplete="off" />
  48. <br />
  49. Población: <input type="text" name="poblacion" id="poblacion" autocomplete="off" />
  50. <br />
  51. <div id="resultado" style="border: solid black 1px;"></div>
  52.        <div id="resultado2" style="border: solid black 1px;"></div>
  53. </body>
  54. </html>

Código
  1. <?php
  2. $link = mysql_connect('localhost', 'root','') or die("Error, no se ha conectado B.D.");
  3. $bd=mysql_select_db('clientes', $link) or die("Error, no se ha seleccionado B.D.");
  4.  
  5. $result;
  6.  
  7. function generaClientes()
  8. {
  9. $link = mysql_connect('localhost', 'root','') or die("Error, no se ha conectado B.D.");
  10. $bd = mysql_select_db('clientes', $link) or die("Error, no se ha seleccionado B.D.");
  11.  
  12.  
  13. $nombre = $_POST['nombre'];
  14. //$provincia = $_POST['provincia'];
  15. $poblacion = $_POST['poblacion'];
  16. //$cif = $_POST['cif'];
  17.  
  18.  
  19. if ( !empty ($nombre) || !empty ($poblacion) || !empty ($provincia)|| !empty ($cif) ) {
  20.  
  21. $sql= " SELECT * FROM tabla WHERE ";   //Empezar a crear la consulta:
  22.  
  23. if ( !empty($nombre) && !empty ($poblacion) && !empty ($provincia) && !empty ($cif) ) {
  24.         $sql .= " Nombre LIKE '%nombre' AND Poblacion LIKE '%$poblacion%' AND Provincia LIKE '%$provincia%' AND CIF LIKE '%$cif%'" ;  
  25.     }
  26.  
  27. else if ( !empty($nombre) && !empty ($poblacion) && !empty ($cif) ) {  
  28.     $sql .= " Nombre LIKE '%nombre' AND Poblacion LIKE '%$poblacion%' AND CIF LIKE '%$cif%'";
  29.    }
  30. else if ( !empty($nombre) && !empty ($cif) && !empty ($provincia) ) {  
  31.     $sql .= " Nombre LIKE '%nombre' AND CIF LIKE '%$cif%' AND Provincia LIKE '%$provincia%'";
  32.    }
  33. else if ( !empty($nombre) &&  !empty ($provincia) ) {  
  34.     $sql .= " Nombre LIKE '%nombre' AND Provincia LIKE '%$provincia%'";
  35.    }
  36. else if ( !empty($nombre) &&  !empty ($cif) ) {  
  37.     $sql .= " Nombre LIKE '%nombre' AND CIF LIKE '%$cif%'";
  38.    }
  39. else if ( !empty($nombre) &&  !empty ($poblacion) ) {  
  40.     $sql .= " Nombre LIKE '%nombre' AND Poblacion LIKE '%$poblacion%'";
  41.    }
  42. else if ( !empty($nombre) ) {
  43.     $sql .= " Nombre LIKE '%$nombre%'";
  44.    }
  45. else if ( !empty ($poblacion) && !empty ($provincia) && !empty ($cif) ) {
  46.     $sql .= " Poblacion LIKE '%$poblacion%' AND Provincia LIKE '%$provincia%' AND CIF LIKE '%$cif%'" ;
  47. }
  48. else if ( !empty($poblacion) &&  !empty ($provincia) ) {  
  49.     $sql .= " Poblacion LIKE '%$poblacion%' AND Provincia LIKE '%$provincia%'";
  50. }
  51. else if ( !empty($poblacion) &&  !empty ($cif) ) {  
  52.     $sql .= " Poblacion LIKE '%$poblacion%' AND CIF LIKE '%$cif%'";
  53. }
  54. else if ( !empty($poblacion)) {  
  55.     $sql .= " Poblacion LIKE '%$poblacion%'";
  56. }
  57. else if ( !empty($cif) &&  !empty ($provincia) ) {  
  58.     $sql .= " CIF LIKE '%$cif%' AND Provincia LIKE '%$provincia%'";
  59. }
  60. else if ( !empty ($provincia) ) {  
  61.     $sql .= " Provincia LIKE '%$provincia%'";
  62. }
  63. else if ( !empty($cif) ) {  
  64.     $sql .= " CIF LIKE '%$cif%'";
  65. }
  66. }
  67.   $sql .= "ORDER BY Nombre ASC";
  68.  
  69. $consulta = mysql_query ($sql) ;   //Hacer la consulta. ?>
  70.  
  71.  
  72.  
  73. <select name='clientes' size="5px">
  74.  
  75.    <?php
  76. while($registro=mysql_fetch_assoc($consulta))
  77. {?>
  78. <option value="<?php echo $registro['Nombre']; ?>"><?php echo $registro['Nombre']," ",$registro['Direccion']," ",$registro['Poblacion']," ", $registro['Provincia'];  ?></option>
  79.  
  80. <?php
  81. }
  82. ?>
  83.  
  84.   </select>
  85.  
  86. <?php
  87. }
  88. ?>
  89.  
  90. </form>
  91.  
  92. <br />
  93. <br />
  94. <?php generaClientes(); ?>
  95.