Foros del Web » Programando para Internet » Javascript »

Problemas con php dentro de javascript

Estas en el tema de Problemas con php dentro de javascript en el foro de Javascript en Foros del Web. Estoy trabajando con el api de googlemaps, me he leido la documentación, lei el articulo de "trabajando con el api de google maps" dentro de ...
  #1 (permalink)  
Antiguo 29/09/2009, 05:55
Avatar de karlic0s  
Fecha de Ingreso: abril-2007
Ubicación: Cartagena (Murcia)
Mensajes: 241
Antigüedad: 17 años
Puntos: 18
Problemas con php dentro de javascript

Estoy trabajando con el api de googlemaps, me he leido la documentación, lei el articulo de "trabajando con el api de google maps" dentro de maestros del web y se usarlo, pero a la hora de mezclar javascript con php tengo problemas. Bien, expongo mi problema.

Para aquellos que estén familirarizados con el api de google maps sabran que una marca se inserta asi:

Código PHP:
    function initialize() {
      if (
GBrowserIsCompatible()) {
        var 
map = new GMap2(document.getElementById("map_canvas"));
        
map.setCenter(new GLatLng(37.6020919,2), 13);
        
map.setUIToDefault();

        var 
point = new GLatLng(37.6020919,2);
        
map.addOverlay(new GMarker(point));


      } 
Esto me funciona a la perfección, pero cuando esto: var point = new GLatLng(37.6020919,2); lo hago mediante php, extrayendo esa misma coordenada desde mi base de datos (en la cual solo hay esa coordenada) el mapa no me funciona, he aquí mi código:

Código PHP:
    function initialize() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map_canvas"));
        map.setCenter(new GLatLng(37.6020919,2), 13);
        map.setUIToDefault();

<?php
$link 
mysql_connect("localhost""root""") or die("Could not connect: " mysql_error());
mysql_selectdb("mibase",$link) or die ("Can\'t use dbmapserver : " mysql_error());

$result mysql_query("SELECT * FROM general",$link);

while(
$row mysql_fetch_array($result))
{
echo 
'

      var point = new GPoint ('
.$row['coordenadas'].');
      map.addOverlay(marker); 

'
;
}
?>

}

No me da error, pero no me funciona, he probado a extraerla fuera del código a ver si fuera por la sentencia php, pero me sale bien, aunque al meterlo dentro del script no funciona, es decir, si lo hago fuera del codigo del api de google maps me sale:
var point = new GLatLng(37.6020919,2);
map.addOverlay(new GMarker(point));
que es lo que me deberia salir, pero dentro del código javascript no lo interpreta.

Un saludo
  #2 (permalink)  
Antiguo 29/09/2009, 06:31
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Problemas con php dentro de javascript

por un instante voy adivinar porque honestamente no estoy familiarizado con la API google maps y ni tanto con php. basandome en el codigo que dices que funciona, me parece que echo no esta devolviendo un codigo similar.

Código:
<?php
...
echo 'var point = new GLatLng('.$row['coordenadas'].');
map.addOverlay(new GMarker(point)); ';
}
?>
segun viendo el codigo, fijate que la funcion es GLatLng, asegurate que $row['coordenadas'] devuelva dos argumentos. desconozco si GLatLng requiere de dos argumentos o si el segundo es opcional. y por ultimo, la variable point tienes que usarla para crear un nuevo marker el cual a su vez este es pasado a addOverla.

recuerda, me estoy dejando llevar por el codigo que te funciona y lo mas probable estoy errando. si no te funciona, pues nada, tendras que esperar a que alguien con mas conocimiento del tema te pueda ayudar.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 29/09/2009, 06:56
Avatar de karlic0s  
Fecha de Ingreso: abril-2007
Ubicación: Cartagena (Murcia)
Mensajes: 241
Antigüedad: 17 años
Puntos: 18
Respuesta: Problemas con php dentro de javascript

Cierto zerokiller y muchas gracias, era eso, el tema es que mezclé el codigo de maestros del web con otro que hice yo distinto (el mapa simple de maestros del web, con el que llamaba a las marcas de mi base de datos), no me fije en ese pequeño detalle, mil gracias :) Por cierto, pongo el código completo por si alguien le interesa...

Código PHP:
  <head>

    <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false&amp;key=ABQIAAAAzr2EBOXUKnm_jVnk0OJI7xSosDVG8KKPE1-m51RBrvYughuyMxQ-i1QfUnH94QxWIa6N4U6MouMmBA"
            type="text/javascript"></script>
    <script type="text/javascript">

    function initialize() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map_canvas"));
        map.setCenter(new GLatLng(37.6020919,-0.9842375), 4);
        map.setUIToDefault();



<?php
$link 
mysql_connect("localhost""root""") or die("Could not connect: " mysql_error());
mysql_selectdb("base",$link) or die ("Can\'t use dbmapserver : " mysql_error());

$result mysql_query("SELECT * FROM general",$link);

while(
$row mysql_fetch_array($result))
{
echo 
'



      var point = new GLatLng ('
.$row['coordenadas'].');
      map.addOverlay(new GMarker(point));
      


'
;
}
?>


      }
    }

    </script>
  </head>

  <body onload="initialize()" onunload="GUnload()">
    <div id="map_canvas" style="width: 500px; height: 300px"></div>


  </body>
</html>
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:42.