Avatar billede pemo123456 Novice
05. maj 2011 - 21:30 Der er 2 kommentarer og
1 løsning

PHP variabel i Google Maps javascript

Kære eksperter

Jeg sidder og forsøger at få en PHP variabel ($sh_gallery) til at blive accepteret i et Google Maps javescript. PHP variablen indeholder informationer om billeder mv, som skal åbnes i et Shadowbox fotogalleri => http://shadowbox-js.com/. PHP variablen og fotogalleriet virker fint sammen, men jeg kan ikke få det til at vise i et infowindow til Google Maps, hvor scriptet ser således ud (interaktion mellem PHP/MySQL er beskrevet af Google her => http://code.google.com/intl/da-DK/apis/maps/articles/phpsqlajax.html del Using PHP's DOM functions to output XML):

<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAI7yuSRzgPYOp6EOuQ-yHFxQDDJh8ERkPNu6VEigFsmAoxnP-rBRdiQ9AJzJIVjuUiu80xArSdN9MMw"
            type="text/javascript"></script>

<script type="text/javascript">
    //<![CDATA[

    var iconBlue = new GIcon();
    iconBlue.image = 'images/flag_blue.png';
    iconBlue.iconSize = new GSize(16, 26);
    iconBlue.iconAnchor = new GPoint(16, 25);
    iconBlue.infoWindowAnchor = new GPoint(5, 1);

    var customIcons = [];
    customIcons["part1"] = iconBlue;

    function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        map.enableScrollWheelZoom();       
        map.setCenter(new GLatLng(30.069094,-96.328125), 4);
       
        GDownloadUrl("phpsqlajax_genxml.php", function(data) {                                                 
          var xml = GXml.parse(data);
          var markers = xml.documentElement.getElementsByTagName("marker");
          for (var i = 0; i < markers.length; i++) {
            var name = markers[i].getAttribute("name");
            var address = markers[i].getAttribute("address");
            var type = markers[i].getAttribute("type");
            var diary = markers[i].getAttribute("diary");
            var memory = markers[i].getAttribute("memory");   
            var jtdato = markers[i].getAttribute("jtdato");
            var photogallery = markers[i].getAttribute("photogallery");                       
            var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                    parseFloat(markers[i].getAttribute("lng")));
            var marker = createMarker(point, name, address, type, diary, memory, jtdato, photogallery);
            map.addOverlay(marker);
          }
        });
      }
    }

    function createMarker(point, name, address, type, diary, memory, jtdato, photogallery) {   
      var marker = new GMarker(point, customIcons[type]);
    var html = "<b>Location: " + address + ", " + name + ", Date: " + jtdato + "</b><br/><hr /><b> Diary: </b>" + diary + "<br /><hr /><b>Recollection from the trip: </b>" + memory + "<br /><hr /><b>View Photo Gallery: </b>" + photogallery + "<br />";
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
      return marker;
    }
    //]]>
  </script>

Jeg har prøvet lidt forskelligt, bl.a. noget så simpelt som at sætte en <?php echo $sh_gallery ?> ind, hvor der står  + photogallery + (10 linier herover).

Jeg har også forsøgt at omdanne min PHP variable til en javascript variable ved hjælp af denne => var photogallery = "<?= $sh_gallery ?>";
Men heller ikke dette har kasten nogen synderlig succes af sig.

Gode forslag til løsning modtages med stor taknemlighed. :-)
Avatar billede heinzdmx Nybegynder
05. maj 2011 - 22:02 #1
Hvad er output som webbrowseren ser?
Avatar billede pemo123456 Novice
06. maj 2011 - 07:13 #2
Hvis jeg sætter denne <?php echo $sh_gallery ?> ind i stedet for " + photogallery + " og sletter de andre referencer, der er til " + photogallery + ", så vises Google Map ikke. I stedet er containeren blå.

Hvis jeg sletter denne linie:

var photogallery = markers[i].getAttribute("photogallery"); og efterfølgende erstatter variablen photogallery med variablen shgalleryj de steder, hvor photogallery er nævnt, så vises Google Map, men Markerne er væk.


Det samme sker også, hvis jeg fjerner variablen photogallery de steder, hvor det er nævnt og så efterfølgende prøver at liste variablen shgalleryj ind at introducere variablen i denne linie:

      var marker = new GMarker(point, shgalleryj, customIcons[type]);

Og så ellers erstatte variablen photogallery således som jeg også gør i øvrige forsøg:

    var html = "<b>Location: " + address + ", " + name + ", Date: " + jtdato + "</b><br/><hr /><b> Diary: </b>" + diary + "<br /><hr /><b>Recollection from the trip: </b>" + memory + "<br /><hr /><b>View Photo Gallery: </b>" + shgalleryj + "<br />";
Avatar billede pemo123456 Novice
11. maj 2011 - 19:11 #3
:-(

Lukker her.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester