Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - sandrich

#1
Estimados amigos del foro,
Estoy trabajando con google maps v3, php y mysql.

Tengo mis puntos en mi DB, hago las consultas bien, pero quiero que al hacer clic en un punto no me muestre la típica ventana de InfoWindows, sino que estoy tratando de sacar los resultados por ID de mi base de datos a un Iframe.
Mi problema es que al hacer clic en cualquier punto me muestra solo la información del último ID de mi tabla, y no me muestra los demás. He estado leyendo que es posible hacerlo con Ajax, pero no tengo mucha idea de como hacerlo.
Necesito que me ayuden porfavor, estaré muy agradecido si alguien me da una orientación o un ejemplo.
Este es mi código donde muestro el Mapa:

index.php
Código (php) [Seleccionar]

<?php
//Quita las noticias 
error_reporting(E_ALL & ~E_NOTICE);
//Incluyo el archivo de conexión
require("../config/conexion.php");
$tabla $_POST["tablas"];
if($tabla == "puntos") {
$query "SELECT * FROM puntos";
}
}
$query2 mysql_query($query$conexion);
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="../js/funciones.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">
  <script type="text/javascript">
function initialize() {
    var myOptions = {
      zoom: 15,
      center: new google.maps.LatLng(-44.117027, -24.619099),
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }//Cierra myOptions
     var map = new google.maps.Map(document.getElementById("map"), myOptions);
if($tabla == "puntos"){
  ?>
  <?php while ($row mysql_fetch_array($query2))
 { 
 
 ?>

    var myLatLng  =  new google.maps.LatLng(<?php echo $row['lat']; ?>, <?php echo $rsTurismo['lng']; ?>);
    var empresa   =  <?php echo "\"" $row['empresa'] . "\""?>;
    var direccion =  <?php echo "\"" $row['direccion'] . "\""?>;
    var telefono  =  <?php echo "\"" $row['telefono'] . "\""?>;
var image   =  <?php echo "\"" $row['icono']. "\"";  ?>;
    //Vamos añaddiendo el marcador
    var marker    =  new google.maps.Marker(
     {
          position: myLatLng,
      draggable:false,
          animation: google.maps.Animation.DROP,
          map: map,
          icon: image
       });//Cerramos el maker
var marcadores ='<b>Empresa:</b>' +empresa + '<br>' + '<b>Direcci&oacute;n:</b>' +direccion + '<br>' + '<b>Tel&eacute;fono:</b>'+telefono;

        // Agregar ventana de información con evento
        MuestraInfo( marker, marcadores);
     
    //Función para mostrar mis datos
        function MuestraInfo(marker, msg) {
           // Crear ventana de información.
             var infowindow = new google.maps.InfoWindow({
             content : msg
            });
            // Crear evento para mostrar la ventana al dar click
            google.maps.event.addListener(marker, 'click', function(){
   window.frames.resultado.location.href="info.php?id=<?php echo $row['id']; ?>"; //ACÁ ES DONDE ENVÍO EL RESULTADO A MI IFRAME de nombre "resultado". Acá me muestra solo el último ID
});
        }
<?php ?>/*Cierre del While*/
}
$(document).ready(function() {
        initialize();
    });
  </script>
...
Acá mi código html
<html>
....
<iframe name="resultado" width="260" height="200" align="left" frameborder="0" id="idifrm">
    </iframe>
</html>



El info.php es este:
Código (php) [Seleccionar]

<?php
error_reporting
(E_ALL & ~E_NOTICE); 
require(
"../config/conexion.php");
$identificador $_GET['id'];
$query "SELECT * FROM puntos WHERE id =$identificador";
$quer mysql_query($query$conexion);
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="../css/styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h3>Resultados </h3>
<table width="250" border="1">
   <?php while ($rs mysql_fetch_assoc($quer)) { ?>
  <tr>
    <td width="73">Empresa</td>
    <td width="111"><?php echo $rs['empresa']; ?></td>
  </tr>
  <tr>
    <td>Direccion</td>
    <td><?php echo $rs['direccion']; ?></td>
  </tr>
  <tr>
    <td>Telefono</td>
    <td><?php echo $rs['telefono']; ?></td>
  </tr>
  <tr>
    <td>E-mail</td>
    <td><?php echo $rs['email']; ?></td>
  </tr>
   <?php ?>
</table>



Desde ya les agradezco me puedan ayudar
SandriCh
#2
Solucionado amigo, guardé los campos en una variable y luego lo imprimí.

Gracias
#3
Muchas Gracias amigo, funciona el Infowindows que necesitaba perfectamente...

Una cosa, por ejemplo.
     mostrarMensaje( marker, structMap['lugares']['nombre_lugar'] );
la cambié por:      mostrarMensaje( marker, nombre, apellido, etc...);

En la función la dejé tal cual:         function mostrarMensaje(marker, msg) {
y el content: msg

Me muestra solo el nombre...
Por qué podría ser???

Muchas gracias nuevamente
#4
Hola amigos del foro, estoy trabajando con Php-mysql y google maps, tengo un problema al querer mostrar el infoWindows correspondiente de cada punto que voy recogiendod e mi base de datos. He lestado googleando, pero no le encuentro solución, en la V2 no tenía problema, pero opté por cambiar a la versión 3 ya que no necesita el API key.
Mí codigo es este:
-------------------------------------
<?php
//Quita los mensajes de  noticias
error_reporting(E_ALL & ~E_NOTICE);
//Incluyo el archivo de conexión
require("conexion.php");

//Guarda la variable que viene del formulario
$criteriotxt = $_POST["criterio"];
$criterio = ucfirst($criteriotxt);

    //Si criterio no esta vacio, entrega los datos ingresados por el usuario
   if ($criterio != "") {
    //Consulta todos los puntos de la tabla emp_turisticos
   $query = "SELECT * FROM mi_tabla WHERE
                                    nombre like '%$criterio%' OR
                                    apellido like '%$criterio%' OR
                                     empresa like '%$criterio%' OR
                                    direccion like '%$criterio%'";
                                    
   $queTurismo = mysql_query($query, $conexion);
   //Si criterio está vacio que cargue todos los datos
}elseif ($criterio == "") {
   //Consulta todos los puntos de la tabla
   $query = "SELECT * FROM mi_tabla";
   $queTurismo = mysql_query($query, $conexion);
}
?>


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- A continuación incluyo la llamada a la API Google Maps-->
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">
</script>

  <script type="text/javascript">
  function initialize() {
    var myOptions = {
      zoom: 15,
      center: new google.maps.LatLng(-43.118027, -73.613099),
      mapTypeId: google.maps.MapTypeId.TERRAIN
    }
     var map = new google.maps.Map(document.getElementById("map"), myOptions);

    //Ventanas de información
     var infowindow = new google.maps.InfoWindow({
          content: 'No puedo mostrar la información de la DB' //Acá tengo problemas, NO SÉ como llamar las variables de mi tabla
       }); //Close infowindows
   
   //Imprimimos los datos de la DB, por lat/long
   <?php while ($rsTurismo = mysql_fetch_assoc($queTurismo))
    {
    ?>
         var image     = 'img/cafe.png';
        var myLatLng  =  new google.maps.LatLng(<?php echo $rsTurismo['lat']; ?>, <?php echo $rsTurismo['lng']; ?>);
       var nombre    =  <?php echo "\"" . $rsTurismo['nombre'] . "\""; ?>;
       var apellido  =  <?php echo "\"" . $rsTurismo['apellido'] . "\""; ?>;
       var empresa   =  <?php echo "\"" . $rsTurismo['empresa'] . "\""; ?>;
       var direccion =  <?php echo "\"" . $rsTurismo['direccion']. "\"";  ?>;
        var telefono  =  <?php echo "\"" . $rsTurismo['telefono']. "\"";  ?>;

        //Vamos añaddiendo el marcador
       var marker    =  new google.maps.Marker(
        {
          position: myLatLng,
         draggable:false,
          animation: google.maps.Animation.DROP,
          map: map,
          icon: image
       });//Close marker

       google.maps.event.addListener(marker, 'click', function() {
       infowindow.open(map, marker);
      });
  <?php } ?>/*Cierre del While*/
}//cierre de la función load()
  </script>
........
.........
.......
Me muestra los puntos sin problemas, pero no sé como hacer para que me muestre el infowindows al hacer clic sobre un punto.

Desde ya muchas gracias amig@s

Sandro

Mi correo es: sandrilloalvarez@hotmail.com
Por si alguien quiere compartir ideas del tema