Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/03/2012, 09:22
Biribu
 
Fecha de Ingreso: mayo-2010
Mensajes: 17
Antigüedad: 14 años
Puntos: 0
Respuesta: Cargar json con php en JS

Pues... el codigo javascript lo tengo en un fichero html que es el que carga la pagina.

Código:
<html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Mapa</title>
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false&amp;key=ABQIAAAAuPsJpk3MBtDpJ4G8cqBnjRRaGTYH6UMl8mADNa0YKuWNNa8VNxQCzVBXTx2DYyXGsTOxpWhvIG7Djw" type="text/javascript"></script>
 
 <script type="text/javascript">

       
	 function initialize() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map_canvas"));
        map.setCenter(new GLatLng(A, B), 13);
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());	
	  }
	}
    function result(){
		var data = <?php phpsqlajax_genjson.php ?> //fichero que genera el json
		for (var i = 0;i < data.length; i += 1) {
    	    var lat = data[i].lat;
        	var lon = data[i].lng;
        var latlng = new GLatLng(lat, lng);
		map.addOverlay(new GMarker(latlng, markerOptions));
      	}
	}

	
    </script>

<style type="text/css">
.mapaGoogle {
	width: 500px;
	height: 300px;
	float: left;
}
</style>
</head>

<body onLoad="initialize()" onUnload="GUnload()" style="font-family: Arial;border: 0 none;">
    
    <div id="map_canvas" class="mapaGoogle"></div>
</body>
</html>
Si quito la funcion de result, carga el mapa en las coordenadas que le pongas. Pero si pongo la funcion result, deja de cargarlo, no sale nada en la pantalla.

He probado a hacerlo por partes, olvidarme del google maps y que muestre un alert con el codigo json pasado por el fichero php pero tampoco hace nada.

Supongo que el problema esta en la linea donde llamo al fichero php, que no se debe hacer asi.

La version de php es la ultima creo, porque me he bajado el xampp para probarlo y viene actualizado. De todas formas, ejecutando solo el fichero de php, este me crea un fichero json sin problemas.

Por otro lado, con el codigo que he puesto en este mensaje, no se donde deberia llamar a la funcion result para que me añada los marcadores. Me gustaria que la llamase cada cierto tiempo para que se fuesen actualizando dinamicamente sin cargar el mapa de nuevo.

Creo que seria algo asi:
Código:
var marcadores = setInterval('result()',1000);
Pero no se si lo tengo que poner dentro de los <scripts> </script> o en el body... Bueno, esto me preocupa menos, si consiguiese que mostrase los marcadores me vale por el momento.