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
<?php require_once('Connections/ConexionCoches.php'); // Número de registros que se debe mostrar en una página? $records_per_page = 12; // Incluye la clase de paginación require 'Zebra_Pagination/Zebra_Pagination.php'; // Instancia del objeto paginación $pagination = new Zebra_Pagination(); // Registros por página $pagination->records_per_page($records_per_page); ?> <body> <div id="DivContenido"> <div id="Fondo"> <div id="DivFiltrado"> <form name="filtrar" method="GET" action="coches.php"> <table width="192" height="30" border="0"> <tr> <td align="center"> <select name="selciudad" id="selciudad" class="Guias3" onchange="this.form.submit()" > <option value="-1" selected> Todas las Ciudades </option> <?php { ($_GET['selciudad'] = '-1'); }elseif ($_GET["selciudad"]==$registrociudad['Provincia']) { echo "<option value='".$registrociudad['Provincia']."' selected> ".$registrociudad['Provincia']."</option>"; }else{ echo "<option value='".$registrociudad['Provincia']."' > ".$registrociudad['Provincia']."</option>"; } ?> </select> </td> </tr> </table> <table width="192" height="30" border="0"> <tr> <td align="center"> <select name="selnacionalidad" id="selnacionalidad" class="Guias3" onchange="this.form.submit()" > <option value="-1" selected> Nacionalidad Chicas </option> <?php ($_GET['selnacionalidad'] = '-1'); }elseif ($_GET["selnacionalidad"]==$registronacionalidad['Nacionalidad']) { echo "<option value='".$registronacionalidad['Nacionalidad']."' selected> ".$registronacionalidad['Nacionalidad']."</option>"; }else{ echo "<option value='".$registronacionalidad['Nacionalidad']."' > ".$registronacionalidad['Nacionalidad']."</option>"; } ?> </select> </td> </tr> </table> <table width="184" border="0" align="center" class="Guias3" rules="rows"> <tr> <td align="left" height="22"> <?php echo "<label><input type='checkbox' name='aireacond' value='1' checked onClick='submit();'/> Aireacond</label>"; }else{ echo "<label><input type='checkbox' name='aireacond' value='1' onClick='submit();'/> Aireacond</label>";} ?> </td> </tr> <tr> <td align="left" height="22"> <?php echo "<label><input type='checkbox' name='llantas' value='1' checked onClick='submit();'/> Llantas</label>"; }else{ echo "<label><input type='checkbox' name='llantas' value='1' onClick='submit();'/> Llantas</label>";} ?> </td> </tr> </table> </form> </div> <!-- Cierre MenuLatIzq --> <div id="Banner-1"> <div class="Contenedor"> <?php //$sql = "SELECT SQL_CALC_FOUND_ROWS * FROM escortschicas"; $sql = "SELECT SQL_CALC_FOUND_ROWS * FROM coches WHERE Activacion = '1'"; $sql .= "AND coches.Nacionalidad = '$selnacionalidad' "; }else {$sql .= "AND coches.Nacionalidad <> '-1' "; } $sql .= "AND coches.Ciudad = '$selciudad' "; }else {$sql .= "AND coches.Ciudad <> '-1' "; } $sql .= "AND coches.Aireacond = '$aireacond' "; }else {$sql .= "AND (coches.Aireacond = '1' or coches.Aireacond = '0')"; } $sql .= "AND coches.Llantas = '$llantas' "; }else {$sql .= "AND (coches.Llantas = '1' or coches.Llantas = '0')"; } $sql .= 'LIMIT ' . (($pagination->get_page()- 1) * $records_per_page) . ', ' . $records_per_page . ''; //Si la consulta no puede ser ejecutada // Parada de la ejecución y el mensaje de error de visualización //Recuperar el número total de registros en la tabla //Pasar el número total de registros a la clase de paginación $pagination->records($rows['rows']); //Registros por página $pagination->records_per_page($records_per_page); ?> <div class="Prueba"> <table class="MarcoFotoPrincipal" width="165" border="0"> <tr> <td><a href="<?php echo $registro['Url']; ?>"><img border="0" src="<?php echo $registro['FotoPrincipal']; ?>"></a></td> </tr> </table> <table width="165" align="center" border="2" bordercolor="#D6A64A"> <tr> <td align="center" class="Edad"><?php echo $registro['Edad']. " años / "; ?><?php echo $registro['Precio']. " €uros"; ?></td> </tr> <tr> <td align="center" class="Ciudad"><?php echo $registro['Ciudad']; ?></td> </tr> </table> </div> <?php } ?> <?php echo $sql; ?> </div> </div> <!-- Cierre Banner-1 --> <div id="Control"> <div id="NumPaginacion"> <?php // Genera los enlaces de paginación $pagination->render(); ?> </div> <!-- Cierro NumPaginacion --> <div id="CabPaginacion2"> <?php echo "Página: " . $pagination->get_page() . " de " . $pagination->_total_pages; ?> </div> <!-- Cierro CabPaginacion2 --> <div id="CabPaginacion3"> <?php echo "Escorts encontradas: ". $rows['rows'] ?> </div> <!-- Cierro CabPaginacion3 --> </div> <!-- Cierro Control --> </div> <!-- Cierro Fondo --> </div><!-- Cierro DivContenido --> </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.