Foros del Web » Programando para Internet » PHP »

Pasar un arreglo desde PHP a Javascript

Estas en el tema de Pasar un arreglo desde PHP a Javascript en el foro de PHP en Foros del Web. Hola tengo un problema al retornar un arreglo desde PHP a JavaScript el hecho es q necesito leer desde una BD las latitudes y longitudes ...
  #1 (permalink)  
Antiguo 11/01/2012, 18:57
 
Fecha de Ingreso: mayo-2011
Mensajes: 3
Antigüedad: 13 años, 5 meses
Puntos: 0
Busqueda Pasar un arreglo desde PHP a Javascript

Hola tengo un problema al retornar un arreglo desde PHP a JavaScript el hecho es q necesito leer desde una BD las latitudes y longitudes que haigan alli guardadas y retornarlas a un arreglo el cual lo retorno a una Funcion Javascript para dibujarlos como marcadores en el API de Google Maps.

Con esta funcion estoy retornando el arreglo (los valores de la BD los obtengo por medio de ADObd )
Código PHP:
public function retornar()
{        
    
$this->valor[$this->sql->FieldCount()];
    while(!
$this->sql->EOF)
    {        
        for (
$i=0$max=$this->sql->FieldCount(); $i $max$i++)
            
$this->valor=array($i=>$this->sql->fields[$i]);
        
$this->sql->MoveNext();            
    }    
    return 
$this->valor;        

Ese arreglo retornado se lo estoy asignando a una variable que se la envio a la funcion Java Script q dibuja los marcadores en Google Maps
Código PHP:
$this->latitud=$con->retornar();
$this->longitud=$con->retornar();
echo 
'<script type="text/javascript">' 'initialize('.$this->latitud.','.$this->longitud.');' '</script>'
En la función Javascript recorro esos arreglos y los dibujo en el mapa
Código:
function initialize(lon , lat) 
{
	var map;		
	var markersArray = [];			
	var haightAshbury = new google.maps.LatLng(2.441626554606709, -76.60483360290527);
			var mapOptions = {zoom: 17,center: haightAshbury,mapTypeId: google.maps.MapTypeId.SATELLITE};
			map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);			
	var image = '../img/apuntador.png';
	for(i=0;i<lon.lenght;i++)
	{
		document.write('Pos '+i+'latitud: '+lat[i]+' Longitud '+lon[i]);	
		var myLatLng = new google.maps.LatLng(lat[i], lon[i]);
		var beachMarker = new google.maps.Marker({
		     position: myLatLng, 
		     map: map, 
		    icon: image
	       });
	
var contentString = '<div id="content">'+ '<div id="siteNotice">'+'</div>'+ '<h3 id="firstHeading" class="firstHeading">Instituci&oacuten Universitaria Colegio Mayor del Cauca</h3>'+'<div id="bodyContent">'+ '<p>Sede <b>Bicentenario</b>.</p>'+ '</div>'+ '</div>'; var infowindow = new google.maps.InfoWindow({ content: contentString }); google.maps.event.addListener(beachMarker, 'click', function() { infowindow.open(map,beachMarker); }); }
} </script>
El problema es q el arreglo q estoy recibiendo en la funcion no contiene valores pero antes de retornarlo si los contenia.
Me podrian ayudar de alguna forma para retornar este arreglo grax
  #2 (permalink)  
Antiguo 16/01/2012, 07:13
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: Pasar un arreglo desde PHP a Javascript

$con->retornar() devuelve un array.
Tú asignas ese array tanto a longitud como a latitud.
Por tanto, en la linea:

Código PHP:
Ver original
  1. echo '<script type="text/javascript">' , 'initialize('.$this->latitud.','.$this->longitud.');' , '</script>';

La salida sería:

Código PHP:
Ver original
  1. echo '<script type="text/javascript">' , 'initialize('Array(), Array()');' , '</script>';
Por eso no funciona. Salu2
__________________
Fere libenter homines, id quod volunt, credunt.

Etiquetas: javascript+php, googlemaps
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 22:27.