Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: sandrich en 24 Abril 2012, 17:25 pm



Título: Paso de parametros por ID javascript, Php... Google Maps v3
Publicado por: sandrich en 24 Abril 2012, 17:25 pm
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
  1. <?php
  2. //Quita las noticias
  3. error_reporting(E_ALL & ~E_NOTICE);
  4. //Incluyo el archivo de conexión
  5. require("../config/conexion.php");
  6. $tabla = $_POST["tablas"];
  7. if($tabla == "puntos") {
  8. $query = "SELECT * FROM puntos";
  9. }
  10. }
  11. $query2 = mysql_query($query, $conexion);
  12. ?>
  13. <html>
  14. <head>
  15. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  16. <script src="../js/funciones.js" type="text/javascript" charset="utf-8"></script>
  17. <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">
  18.  <script type="text/javascript">
  19. function initialize() {
  20.    var myOptions = {
  21.      zoom: 15,
  22.      center: new google.maps.LatLng(-44.117027, -24.619099),
  23.      mapTypeId: google.maps.MapTypeId.ROADMAP
  24.    }//Cierra myOptions
  25.     var map = new google.maps.Map(document.getElementById("map"), myOptions);
  26. if($tabla == "puntos"){
  27.  ?>
  28.   <?php while ($row = mysql_fetch_array($query2))
  29. {
  30. ?>
  31.    var myLatLng  =  new google.maps.LatLng(<?php echo $row['lat']; ?>, <?php echo $rsTurismo['lng']; ?>);
  32.    var empresa   =  <?php echo "\"" . $row['empresa'] . "\""; ?>;
  33.    var direccion =  <?php echo "\"" . $row['direccion'] . "\""; ?>;
  34.    var telefono  =  <?php echo "\"" . $row['telefono'] . "\""; ?>;
  35. var image  =  <?php echo "\"" . $row['icono']. "\"";  ?>;
  36.    //Vamos añaddiendo el marcador
  37.    var marker    =  new google.maps.Marker(
  38.     {
  39.          position: myLatLng,
  40.      draggable:false,
  41.          animation: google.maps.Animation.DROP,
  42.          map: map,
  43.          icon: image
  44.       });//Cerramos el maker
  45. var marcadores ='<b>Empresa:</b>' +empresa + '<br>' + '<b>Direcci&oacute;n:</b>' +direccion + '<br>' + '<b>Tel&eacute;fono:</b>'+telefono;
  46.  
  47.        // Agregar ventana de información con evento
  48.        MuestraInfo( marker, marcadores);
  49.  
  50.     //Función para mostrar mis datos
  51.        function MuestraInfo(marker, msg) {
  52.           // Crear ventana de información.
  53.             var infowindow = new google.maps.InfoWindow({
  54.             content : msg
  55.            });
  56.            // Crear evento para mostrar la ventana al dar click
  57.            google.maps.event.addListener(marker, 'click', function(){
  58.   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
  59. });
  60.        }
  61. <?php } ?>/*Cierre del While*/
  62. }
  63. $(document).ready(function() {
  64.        initialize();
  65.    });
  66.  </script>
  67. ...
  68. Acá mi código html
  69. <html>
  70. ....
  71. <iframe name="resultado" width="260" height="200" align="left" frameborder="0" id="idifrm">
  72.    </iframe>
  73. </html>
  74.  
  75.  

El info.php es este:
Código
  1. <?php
  2. error_reporting(E_ALL & ~E_NOTICE);
  3. require("../config/conexion.php");
  4. $identificador = $_GET['id'];
  5. $query = "SELECT * FROM puntos WHERE id =$identificador";
  6. $quer = mysql_query($query, $conexion);
  7. ?>
  8. <html>
  9. <head>
  10. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  11. <link href="../css/styles.css" rel="stylesheet" type="text/css" />
  12. </head>
  13. <body>
  14. <h3>Resultados </h3>
  15. <table width="250" border="1">
  16.   <?php while ($rs = mysql_fetch_assoc($quer)) { ?>
  17.  <tr>
  18.    <td width="73">Empresa</td>
  19.    <td width="111"><?php echo $rs['empresa']; ?></td>
  20.  </tr>
  21.  <tr>
  22.    <td>Direccion</td>
  23.    <td><?php echo $rs['direccion']; ?></td>
  24.  </tr>
  25.  <tr>
  26.    <td>Telefono</td>
  27.    <td><?php echo $rs['telefono']; ?></td>
  28.  </tr>
  29.  <tr>
  30.    <td>E-mail</td>
  31.    <td><?php echo $rs['email']; ?></td>
  32.  </tr>
  33.   <?php } ?>
  34. </table>
  35.  
  36.  

Desde ya les agradezco me puedan ayudar
SandriCh