AJAX - refrescar un div

 
Vista:
sin imagen de perfil

refrescar un div

Publicado por javier (16 intervenciones) el 27/03/2012 22:00:24
Hola.
Estoy intentando crear un procedimiento que refresque un div el cual tiene tanto php como js.
Para ello creo lo siguiente:

1
2
3
4
5
6
function cambia(){
		var inte=self.setInterval("getContent()",5000);
	}
	function getContent()
		{ $.get("adolzz03.php", function(data)
		{ $("#mapa1").html(data.prod); }, "json"); }

Esto es llamado desde :
<body onload="cambia();">

El div contiene:
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
<div id="mapa1">
		<?php
			if($link=mysql_connect("localhost","user","clave")){
		  	mysql_select_db("orienweb");}else{
  	       		header ("Location: http://localhost");};
			$leegps= mysql_query("SELECT * FROM gps;", $link) or die(" datos".mysql_error());
			$reg=mysql_fetch_array($leegps);
			$dato1=$reg['campo1'];
			$dato2=$reg['campo2'];
			$dato3= $reg['campo3'];
			$cadena = $dato1. "  ". $dato2. "   " .$dato3 ;
			$latlon = ereg_replace(",",".", $dato2);
			list($cont, $lat, $nulo,$lon,$corredor, $hora) = split('[-]', $latlon);
			 $lon0 = -1 * $lon;
			$cadena = "latitud: ".$lat." longitud: ".$lon0." corredor: ".$corredor." Hora carrera:".$hora;
			echo '<script>init('.$lon0.','.$lat. ');</script>'
		?>
 
		<form id="lista" action="#" method="post">
	 	<select id='listas' name='datogps' id='datogps'>
	 	<option><? echo $cadena. "</b><br>";?></option>
 	 	<? while ($reg=mysql_fetch_array($leegps)){
	 	$dato1=$reg['campo1'];
	 	$dato2=$reg['campo2'];
	 	$dato3= $reg['campo3'];
		$latlon = ereg_replace(",",".", $dato2);
		list($cont, $lat, $nulo,$lon,$corredor, $hora) = split('[-]', $latlon);
		$lon0 = -1 * $lon;
		$cadena = "latitud: ".$lat. " longitud: " .$lon0. " corredor: " .$corredor. " Hora carrera: " .$hora;
        	?>
  		<option><b><? echo $cadena. "</b><br>";?></option>
      		 <?
	   	  echo '<script>createMarkers('.$lon0.','.$lat. ');</script>';  };
		 ?>
 	</div>

Lo que ocurre es que la primera vez lo ejecuta y presenta los datos y el mapa y si lo sigo por el depurador veo que ejecuta el refresco pero no actualiza y presenta datos nuevos. Me da la sensacion de que no ejecuta el interior de "mapa1".
¿Donde está el fallo?.

Gracias y buenas noches.
Javi.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 90
Oro
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

refrescar un div

Publicado por xve (222 intervenciones) el 28/03/2012 07:07:35
Hola Javier, al estar el setInterval dentro de la función cambia(), únicamente se ejecuta una vez, ya que esta función no la vuelves a llamar... una manera podría ser:
1
2
3
4
5
6
7
function getContent()
{
    $.get("adolzz03.php", function(data){
        $("#mapa1").html(data.prod);
    }, "json");
    var inte=self.setInterval("getContent()",5000);
}

y cambiar el body por:
1
<body onload="getContent();">


Ten en cuenta, que todo el contenido del div mapa1, no tiene sentido, ya que una vez cargada la pagina, se ejecutara el ajax y reemplazara todo su contenido.

Coméntanos si te sirve, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar