Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/11/2012, 17:44
unexes
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 14 años
Puntos: 7
Refrescar solo el div no la página entera

Buenas a tod@s, el titulo practicamente lo dice todo.

Vereis tengo esta página que funciona perfectamente, tengo en la parte izquierda de mi página un "<div id="DivFiltrado">" que contiene un formulario para filtrar y el la parte derecha un "<div class="Contenedor"> y un <div class="Prueba">" que me muestra los registros que he filtrado, pues bien cada vez que selecciono algo en el formulario de filtrar con el evento "Onchange" se ejecuta, y me refresca toda la página mostrandome los registros que cumplen dichas condiciones, todo esto es correcto.

Lo que quiero es que solo se refresque el "<div class="Contenedor"> o el <div class="Prueba">" ( no se cual de los dos es el que se tendria que refrescar) que son los que contienen los registros filtrados y no toda la página, así evitare el tipico parpadeo cuando se refresca la página entera.
He leido varias cosas en la red pero no las he entendido, me podeis ayudar.

Este es mi código al completo:
Código PHP:
Ver original
  1. <?php
  2.         require_once('Connections/ConexionCoches.php');
  3.         $selciudad = isset($_GET["selciudad"])? $_GET["selciudad"]: '';
  4.         $selnacionalidad = isset($_GET['selnacionalidad'])?$_GET['selnacionalidad']:'';
  5.         $aireacond = isset($_GET["aireacond"])? $_GET["aireacond"]: '';
  6.         $llantas = isset($_GET["llantas"])? $_GET["llantas"]: '';
  7.        
  8.         // Número de registros que se debe mostrar en una página?
  9.         $records_per_page = 12;
  10.         // Incluye la clase de paginación
  11.         require 'Zebra_Pagination/Zebra_Pagination.php';
  12.         // Instancia del objeto paginación
  13.         $pagination = new Zebra_Pagination();
  14.         // Registros por página
  15.        $pagination->records_per_page($records_per_page);
  16. ?>
  17. <body>
  18. <div id="DivContenido">
  19. <div id="Fondo">
  20. <div id="DivFiltrado">
  21. <form name="filtrar" method="GET" action="coches.php">
  22. <table width="192" height="30" border="0">
  23. <tr>
  24. <td align="center">
  25.     <select name="selciudad" id="selciudad" class="Guias3" onchange="this.form.submit()" >
  26.     <option value="-1" selected>&nbsp;Todas las Ciudades&nbsp;&nbsp;</option>
  27.     <?php
  28.     $tablaciudad = mysql_query("SELECT * FROM provincias  ORDER BY Provincia ASC");
  29.     while ($registrociudad  = mysql_fetch_array($tablaciudad ))
  30.         if(empty($_GET['selciudad']))
  31.         {
  32.           ($_GET['selciudad'] = '-1');
  33.         }elseif
  34.           ($_GET["selciudad"]==$registrociudad['Provincia'])        {
  35.            echo "<option value='".$registrociudad['Provincia']."' selected>&nbsp;&nbsp;".$registrociudad['Provincia']."</option>";
  36.        }else{
  37.           echo "<option value='".$registrociudad['Provincia']."' >&nbsp;&nbsp;".$registrociudad['Provincia']."</option>";      }
  38.     mysql_free_result($tablaciudad);
  39.    
  40.     ?>
  41. </select>
  42. </td>
  43. </tr>
  44. </table>
  45. <table width="192" height="30" border="0">
  46.   <tr>
  47.   <td align="center">
  48.   <select name="selnacionalidad" id="selnacionalidad" class="Guias3" onchange="this.form.submit()" >
  49.         <option value="-1" selected>&nbsp;Nacionalidad Chicas&nbsp;</option>
  50. <?php
  51.     $tablanacionalidad = mysql_query("SELECT * FROM nacionalidad ORDER BY Nacionalidad ASC");
  52.     while ($registronacionalidad = mysql_fetch_array($tablanacionalidad))  
  53.         if(empty($_GET['selnacionalidad']))     {
  54.           ($_GET['selnacionalidad'] = '-1');
  55.         }elseif
  56.           ($_GET["selnacionalidad"]==$registronacionalidad['Nacionalidad'])     {
  57.            echo "<option value='".$registronacionalidad['Nacionalidad']."' selected>&nbsp;&nbsp;".$registronacionalidad['Nacionalidad']."</option>";
  58.        }else{
  59.           echo "<option value='".$registronacionalidad['Nacionalidad']."' >&nbsp;&nbsp;".$registronacionalidad['Nacionalidad']."</option>";      }
  60.     mysql_free_result($tablanacionalidad);
  61.         ?>  </select>
  62.     </td>
  63.     </tr>
  64.     </table>
  65.    <table width="184" border="0"  align="center" class="Guias3" rules="rows">
  66.       <tr>
  67.         <td align="left" height="22">
  68. <?php
  69. if (isset($_GET["aireacond"])){
  70.     echo "<label><input type='checkbox' name='aireacond' value='1' checked onClick='submit();'/> Aireacond</label>";
  71. }else{
  72.     echo "<label><input type='checkbox' name='aireacond' value='1' onClick='submit();'/> Aireacond</label>";}
  73. ?>
  74.        </td>
  75.       </tr>
  76.       <tr>
  77.         <td align="left" height="22">
  78. <?php
  79. if (isset($_GET["llantas"])){
  80.     echo "<label><input type='checkbox' name='llantas' value='1' checked onClick='submit();'/> Llantas</label>";
  81. }else{
  82.     echo "<label><input type='checkbox' name='llantas' value='1' onClick='submit();'/> Llantas</label>";}
  83. ?>
  84.         </td>
  85.       </tr>    
  86.    </table>
  87. </form>
  88. </div> <!-- Cierre MenuLatIzq -->
  89. <div id="Banner-1">
  90. <div class="Contenedor">
  91. <?php
  92. //$sql = "SELECT SQL_CALC_FOUND_ROWS * FROM escortschicas";    
  93. $sql = "SELECT SQL_CALC_FOUND_ROWS * FROM coches WHERE Activacion = '1'";
  94.  
  95.         if (isset($_GET['selnacionalidad'])and $_GET['selnacionalidad'] <>'-1') {
  96.         $sql .= "AND coches.Nacionalidad = '$selnacionalidad' ";
  97.        }else {$sql .= "AND coches.Nacionalidad <> '-1' ";
  98. }
  99.         if (isset($_GET['selciudad'])and $_GET['selciudad'] <>'-1') {
  100.         $sql .= "AND coches.Ciudad = '$selciudad' ";
  101.        }else {$sql .= "AND coches.Ciudad <> '-1' ";
  102. }
  103.        if (isset($_GET['aireacond'])and $_GET['aireacond'] ='1') {
  104.         $sql .= "AND coches.Aireacond = '$aireacond' ";
  105.        }else {$sql .= "AND (coches.Aireacond = '1' or coches.Aireacond = '0')";
  106. }
  107.        if (isset($_GET['llantas'])and $_GET['llantas'] ='1') {
  108.         $sql .= "AND coches.Llantas = '$llantas' ";
  109.        }else {$sql .= "AND (coches.Llantas = '1' or coches.Llantas = '0')";
  110. }
  111.         $sql .= 'LIMIT ' . (($pagination->get_page()- 1) * $records_per_page) . ', ' .  $records_per_page . '';
  112.    //Si la consulta no puede ser ejecutada
  113.         if (!($result = @mysql_query($sql))) {
  114.   // Parada de la ejecución y el mensaje de error de visualización
  115.             die(mysql_error()); }
  116.          //Recuperar el número total de registros en la tabla
  117.         $rows = mysql_fetch_assoc(mysql_query('SELECT FOUND_ROWS() AS rows'));
  118.          //Pasar el número total de registros a la clase de paginación
  119.          $pagination->records($rows['rows']);
  120.         //Registros por página
  121.          $pagination->records_per_page($records_per_page);
  122. $tabla = mysql_query($sql);
  123. while ($registro = mysql_fetch_array($tabla)) {
  124.         ?>
  125.  <div class="Prueba">
  126.  <table class="MarcoFotoPrincipal" width="165" border="0">
  127.   <tr>      
  128.           <td><a href="<?php echo $registro['Url']; ?>"><img border="0" src="<?php echo $registro['FotoPrincipal']; ?>"></a></td>          
  129.   </tr>
  130.   </table>
  131. <table width="165"  align="center" border="2"  bordercolor="#D6A64A">
  132.   <tr>
  133.     <td  align="center" class="Edad"><?php echo $registro['Edad']. "&nbsp;años&nbsp;/&nbsp;"; ?><?php echo $registro['Precio']. "&nbsp;€uros"; ?></td>
  134.   </tr>
  135.   <tr>
  136.      <td  align="center" class="Ciudad"><?php echo $registro['Ciudad']; ?></td>
  137.   </tr>
  138. </table>
  139.  </div>      
  140. <?php
  141. }
  142. ?>
  143. <?php echo $sql; ?>
  144.   </div>
  145.   </div> <!-- Cierre Banner-1 -->
  146. <div id="Control">
  147.         <div id="NumPaginacion">
  148.         <?php
  149.          // Genera los enlaces de paginación
  150.         $pagination->render();
  151.         ?>
  152.         </div> <!-- Cierro NumPaginacion -->
  153.         <div id="CabPaginacion2">
  154.         <?php
  155. echo "Página:  " . $pagination->get_page() . "   de   " . $pagination->_total_pages;
  156.         ?>
  157.         </div> <!-- Cierro CabPaginacion2 -->
  158.         <div id="CabPaginacion3">
  159.         <?php
  160. echo "Escorts encontradas: ". $rows['rows']
  161.  
  162.         ?>
  163.         </div> <!-- Cierro CabPaginacion3 -->
  164. </div> <!-- Cierro Control -->
  165. </div> <!-- Cierro Fondo -->
  166. </div><!-- Cierro DivContenido -->
  167. </body>

P.D. Para que el formulario de filtrado y la consulta fueran mas cortos he eliminado parte del código.

Un saludo y gracias.
__________________
¿Hay algo mas hermoso que ayudar.?