
Refrescar div sin refrescar la página
Publicado por Unexes (7 intervenciones) el 29/11/2012 00:46:53
Hola a tod@s.
Vereis no tengo idea de Jquery pero un buen compañero xve me aconsejo desde el foro de php como hacer lo que me proponia así que he empezado a hacerlo y espero vuestra ayuda, porque aunque mi voluntad es mucha estoy perdido.
Para simplificar dire que tengo una página que tiene en la parte izquierda un formulario que se utiliza para filtrar, basicamente son (selects y Checbox) y en la derecha me muestra dentro de un div los resultados que obtengo en la consulta, hasta ahora todo esta en la misma página y funciona perfectamente el problema es que cada vez que filtro me refresca la página y me produce el tipico parpadeo, por eso solo quiero refrescar el div donde muestros los resultados cada vez que filtro y para ello es por lo que os pido vuestra ayuda.
Este es el código que tengo en este momento por supuesto para hacerlo mas corto y mas visible lo he reducido y solo he dejado un select y un checkbox:
Coches.php:
y este el de mi Pagina1.php:
Bueno ahora os comento el primer problema es que al entrar en la página por primera vez el div no se rellena con todos los registros ya que en ese momento todavia no he filtrado nada, se queda vacio.
El segundo problema es que el evento Onchange del select parece que si hace algo ya que al seleccionar algo para filtrar no importa lo que seleccione me muestra todos los registros, pero por supuesto no me filtra ya que no estoy pasandole ningun valor a la variable de la consulta.
Tercero el evento onClick del checkbox no hace absolutamente nada, pero no me aparece ningún error de sintaxis.
Espero me podais ayudar, Gracias.
Vereis no tengo idea de Jquery pero un buen compañero xve me aconsejo desde el foro de php como hacer lo que me proponia así que he empezado a hacerlo y espero vuestra ayuda, porque aunque mi voluntad es mucha estoy perdido.
Para simplificar dire que tengo una página que tiene en la parte izquierda un formulario que se utiliza para filtrar, basicamente son (selects y Checbox) y en la derecha me muestra dentro de un div los resultados que obtengo en la consulta, hasta ahora todo esta en la misma página y funciona perfectamente el problema es que cada vez que filtro me refresca la página y me produce el tipico parpadeo, por eso solo quiero refrescar el div donde muestros los resultados cada vez que filtro y para ello es por lo que os pido vuestra ayuda.
Este es el código que tengo en este momento por supuesto para hacerlo mas corto y mas visible lo he reducido y solo he dejado un select y un checkbox:
Coches.php:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<script type='text/javascript' src='jquery-1.7.1.min.js'></script>
<style type='text/css'>
#contenido { position: absolute; top: 184px; left: 200px; width:765px;height: 165px;}
.clock {position:relative;left:50%;top:50%;width:36px;height:36px;padding:20px;}
</style>
</head>
<?php
require_once('Connections/ConexionCoches.php');
$selciudad = isset($_GET["selciudad"])? $_GET["selciudad"]: '';
$aireacond = isset($_GET["aireacond"])? $_GET["aireacond"]: '';
?>
<body>
<div id="DivContenedor">
<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="cargarContenidoReloj('Pagina1.php')">
<option value="-1" selected> Todas las Ciudades </option>
<?php
$tablaciudad = mysql_query("SELECT * FROM provincias ORDER BY Provincia ASC");
while ($registrociudad = mysql_fetch_array($tablaciudad ))
if(empty($_GET['selciudad']))
{
($_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>"; }
mysql_free_result($tablaciudad);
?>
</select>
</td>
</tr>
</table>
<table width="184" border="0" align="center" class="Guias3" rules="rows">
<tr>
<td align="left" height="22">
<?php
if (isset($_GET["aireacond"])){
echo "<label><input type='checkbox' name='aireacond' value='1' checked onClick='cargarContenidoReloj('Pagina1.php')'/> Aireacond</label>";
}else{
echo "<label><input type='checkbox' name='aireacond' value='1' onClick='cargarContenidoReloj('Pagina1.php')'/> Aireacond</label>";}
?>
</td>
</tr>
</table>
</form>
</div>
<div id='contenido'></div>
<script type='text/javascript'>
// Funcion para cargar un contenido en un div
function cargarContenido(pagina)
{
// cargamos la pagina pagina.html en el div contenido
$("#contenido").load(pagina);
}
// Funcion para cargar un contenido en un div mostrando un reloj de arena
function cargarContenidoReloj(pagina)
{
// cargamos el icono en el div donde ira el contenido
$("#contenido").html("<img src='clock.gif' class='clock' border='0' />");
// cargamos la pagina pagina3.php en el div contenido
$("#contenido").load(pagina);
}
</script>
</div> <!-- Cierro Fondo -->
</div><!-- Cierro DivContenido -->
</body>
y este el de mi Pagina1.php:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
require_once('Connections/ConexionCoches.php');
// Simulamos el tiempo que puede tardar la pagina en cargarse
//sleep(5);
?>
<div id="Banner-1">
<?php
$sql = "SELECT SQL_CALC_FOUND_ROWS * FROM coches WHERE Activacion = '1'";
if (isset($_GET['selciudad'])and $_GET['selciudad'] <>'-1') {
$sql .= "AND coches.Ciudad = '$selciudad' ";
}else {$sql .= "AND coches.Ciudad <> '-1' ";
}
if (isset($_GET['aireacond'])and $_GET['aireacond'] ='1') {
$sql .= "AND coches.Aireacond = '$aireacond' ";
}else {$sql .= "AND (coches.Aireacond = '1' or coches.Aireacond = '0')";
}
$sql .= 'LIMIT 0, 12' ;
if (!($result = @mysql_query($sql))) {
die(mysql_error()); }
//Recuperar el número total de registros en la tabla
$rows = mysql_fetch_assoc(mysql_query('SELECT FOUND_ROWS() AS rows'));
$tabla = mysql_query($sql);
while ($registro = mysql_fetch_array($tabla)) {
?>
<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
}
mysql_free_result($tabla);
?>
</div> <!-- Cierro Banner-1-->
Bueno ahora os comento el primer problema es que al entrar en la página por primera vez el div no se rellena con todos los registros ya que en ese momento todavia no he filtrado nada, se queda vacio.
El segundo problema es que el evento Onchange del select parece que si hace algo ya que al seleccionar algo para filtrar no importa lo que seleccione me muestra todos los registros, pero por supuesto no me filtra ya que no estoy pasandole ningun valor a la variable de la consulta.
Tercero el evento onClick del checkbox no hace absolutamente nada, pero no me aparece ningún error de sintaxis.
Espero me podais ayudar, Gracias.
Valora esta pregunta


0