Foros del Web » Programando para Internet » PHP »

Refrescar solo el div no la página entera

Estas en el tema de Refrescar solo el div no la página entera en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 27/11/2012, 17:44
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 3 meses
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.?
  #2 (permalink)  
Antiguo 28/11/2012, 00:04
Avatar de arianna_rr  
Fecha de Ingreso: noviembre-2012
Ubicación: Playa Del Carmen, Q. Roo
Mensajes: 40
Antigüedad: 11 años, 5 meses
Puntos: 3
Respuesta: Refrescar solo el div no la página entera

Para refrescar sólo una parte es necesario usar AJAX, te dejo este post que tiene unos links de utilidad, ahí puedes empezar a aprender.

[URL="http://www.forosdelweb.com/f127/ajax-para-principiantes-711558/"]http://www.forosdelweb.com/f127/ajax-para-principiantes-711558/[/URL]
__________________
Respaldo, luego existo.
--------------------
Aprender rápido y olvidar lentamente es sólo una capacidad. Si te crees inteligente evita las respuestas pedantes. GRACIAS! ♫
  #3 (permalink)  
Antiguo 28/11/2012, 01:59
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 3 meses
Puntos: 7
Respuesta: Refrescar solo el div no la página entera

arianna_rr.

Voy a echarle un vistazo al link que me has puesto pero dudo de si sabre hacerlo solo porque de ajax no tengo ni idea, no obstante muchas gracias por tu ayuda.

Un saludo, ya te comentare algo.
__________________
¿Hay algo mas hermoso que ayudar.?

Etiquetas: formulario, mysql, página, refrescar, registro, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:33.