The logical thing to do would be to process the form using ajax, and
then reload the markers using an event listener like moveend.

So, for example, use the prototype library:
http://www.prototypejs.org/
and then set up a javascript function like this:

<script type="text/javascript" src="http://prototypejs.org/javascripts/
prototype.js"></script>

<script type="text/javascript" language="JavaScript">
function sendpoints()
{
var url = 'insert-secrets.php';
var labelvalue = $F('label');
var latvalue = $F('latl');
var lngvalue = $F('lng');
var catvalue = $F('category');
var pars = 'label='+labelvalue+'lat='+latvalue+'lon='+lonvalue
+'cat='+catvalue;
var target = 'output';
var myAjax = new Ajax.Updater(target, url, {method: 'get', parameters:
pars});
}
</script>
<div id = "output">Any text in insert-secrets.php will appear here</
div>
Then, take out your
<form action="insert-secrets.php" method="post">
change to
<form action="" method="t">
and change
<input type="submit" value="Add your location"  />
to
<input type="submit" value="Add your location"  onclick =
"sendpoints();" />

You then want to put:
GDownloadUrl("extract-secrets.php", function(data) {
        var xml = GXml.parse(data);
        var markers = xml.documentElement.getElementsByTagName("marker");
        for (var i = 0; i < markers.length; i++) {
        var id = markers[i].getAttribute("id");
        var label = markers[i].getAttribute("label");
        var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
        var category = markers[i].getAttribute("category");
        var marker = createMarker(point, label, category, id);
        map.addOverlay(marker);
        makeSidebar();
        }
        });
into a function:

function updatemarkers ()
{
GDownloadUrl("extract-secrets.php", function(data) {
        var xml = GXml.parse(data);
        var markers = xml.documentElement.getElementsByTagName("marker");
        for (var i = 0; i < markers.length; i++) {
        var id = markers[i].getAttribute("id");
        var label = markers[i].getAttribute("label");
        var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
        var category = markers[i].getAttribute("category");
        var marker = createMarker(point, label, category, id);
        map.addOverlay(marker);
        makeSidebar();
        }
        });

}

and add a listener:
Gevent.addListener(map,"moveend",function() {updatemarkers()});

========================================================

I haven't actually tested any of this code, but that's how i would do
it.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Maps API" 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-API?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to