Hey Beach Bum,

It would help significantly if you provided a link to your demo as opposed
to pasting the entire code snippet in the body.

Do you have one available?


Thanks,

Dann

On Fri, Apr 9, 2010 at 2:12 PM, Beach Bum <[email protected]> wrote:

> Hello. I am trying to combine the functionality of two code samples
> found here:
>
> Using PHP/MySQL with Google Maps
> http://code.google.com/apis/maps/articles/phpsqlajax_v3.html
>
> From Info Windows to a Database: Saving User-Added Form Data
> http://code.google.com/apis/maps/articles/phpsqlinfo_v3.html
>
> The first example displays points from a MySQL db on the map. The
> second takes form content and creates a new marker with database info.
> Both of these work fine by themselves so I know MySQL and PHP are
> setup correctly.
>
> What I would like to do is while displaying the marker data from the
> db, add a button so user can click button to "Add Point" and then
> click on the map to add a new marker. I am somewhat new to web
> development and am having trouble figuring out how to combine these
> functions.
>
> I would also like to have the InfoWindow pop up automatically when the
> user clicks the map to add the marker. The code currently requires
> that the user first click the map to add a marker, then click the
> marker to have InfoWindow pop up.
>
> Here is my attempt at combining these functions. It basically behaves
> the same as the "Using PHP/MySQL with Google Maps" code except it
> shows a button on top that does not seem to function. Any help you can
> give would be greatly appreciated. Thank you in advance. Aaron
>
> <html xmlns="http://www.w3.org/1999/xhtml";>
>  <head>
>    <meta http-equiv="content-type" content="text/html; charset=utf-8"/
> >
>    <title>Google Maps AJAX + mySQL/PHP Example</title>
>    <script src="http://maps.google.com/maps/api/js?sensor=false";
>            type="text/javascript"></script>
>    <script type="text/javascript">
>    //<![CDATA[
>
>    var customIcons = {
>      restaurant: {
>        icon: 'http://labs.google.com/ridefinder/images/
> mm_20_blue.png',
>        shadow: 'http://labs.google.com/ridefinder/images/
> mm_20_shadow.png'
>      },
>      bar: {
>        icon: 'http://labs.google.com/ridefinder/images/
> mm_20_red.png',
>        shadow: 'http://labs.google.com/ridefinder/images/
> mm_20_shadow.png'
>      }
>    };
>
>    function load() {
>      var map = new google.maps.Map(document.getElementById("map"), {
>        center: new google.maps.LatLng(32.7356, -117.2493),
>        zoom: 13,
>        mapTypeId: 'roadmap'
>      });
>      var infoWindow = new google.maps.InfoWindow;
>
>      downloadUrl("GoogleTest.php", function(data) {
>        var xml = parseXml(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 point = new google.maps.LatLng(
>              parseFloat(markers[i].getAttribute("lat")),
>              parseFloat(markers[i].getAttribute("lng")));
>          var html = "<b>" + name + "</b> <br/>" + address;
>          var icon = customIcons[type] || {};
>          var marker = new google.maps.Marker({
>            map: map,
>            position: point,
>            icon: icon.icon,
>            shadow: icon.shadow
>          });
>          bindInfoWindow(marker, map, infoWindow, html);
>        }
>      });
>    }
>
>    function AddMarker() {
>        var map = new
> google.maps.Map(document.getElementById("map_canvas"), options);
>        var html = "<table>" +
>                 "<tr><td>Name:</td> <td><input type='text' id='name'/
> > </td> </tr>" +
>                 "<tr><td>Address:</td> <td><input type='text'
> id='address'/></td> </tr>" +
>                 "<tr><td>Type:</td> <td><select id='type'>" +
>                 "<option value='bar' SELECTED>bar</option>" +
>                 "<option value='restaurant'>restaurant</option>" +
>                 "</select> </td></tr>" +
>                 "<tr><td></td><td><input type='button' value='Save &
> Close' onclick='saveData()'/></td></tr>";
>        infowindow = new google.maps.InfoWindow({
>        content: html
>        });
>
>        google.maps.event.addListener(map, "click", function(event) {
>                marker = new google.maps.Marker({
>                        position: event.latLng,
>                        map: map  });});
>        google.maps.event.addListener(marker, "click", function() {
>                infowindow.open(map, marker); });
>    }
>
>    function bindInfoWindow(marker, map, infoWindow, html) {
>      google.maps.event.addListener(marker, 'click', function() {
>        infoWindow.setContent(html);
>        infoWindow.open(map, marker);
>      });
>    }
>
>    function downloadUrl(url, callback) {
>      var request = window.ActiveXObject ?
>          new ActiveXObject('Microsoft.XMLHTTP') :
>          new XMLHttpRequest;
>
>      request.onreadystatechange = function() {
>        if (request.readyState == 4) {
>          request.onreadystatechange = doNothing;
>          callback(request.responseText, request.status);
>        }
>      };
>
>      request.open('GET', url, true);
>      request.send(null);
>    }
>
>    function parseXml(str) {
>      if (window.ActiveXObject) {
>        var doc = new ActiveXObject('Microsoft.XMLDOM');
>        doc.loadXML(str);
>        return doc;
>      } else if (window.DOMParser) {
>        return (new DOMParser).parseFromString(str, 'text/xml');
>      }
>    }
>
>    function doNothing() {}
>
>  </script>
>  </head>
>
>  <body onload="load()">
>        <input type="button" onclick="AddMarker()" value="Add Point" />
>    <div id="map" style="width: 800px; height: 600px"></div>
>  </body>
> </html>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google Maps JavaScript API v3" group.
> To post to this group, send email to
> [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-maps-js-api-v3%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-maps-js-api-v3?hl=en.
>
>


-- 
Daniel Lee
Developer Programs Engineer
Google, Inc.
345 Spear Street
San Francisco, CA 94105
650 253 0967

-- 
You received this message because you are subscribed to the Google Groups 
"Google Maps JavaScript API v3" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-maps-js-api-v3?hl=en.

Reply via email to