Dit is een topic in Community » Forum » Pro » Web ontwikkeling

Google maps geocoder vraag.

Gfive

Gfive op 23 januari 2012 #

Hallo,
Onderstaande code werkt.
Voer een adres is en na het klikken krijg je mooi de longitude en latitude te zien.

Mijn probleem:
De longitude en latitude moeten uiteindelijk toegevoegd worden aan mijn database.
Er zit nog een formulier aan vast en alle data zou dan verzonden moeten worden.
Alleen dit werkt niet.

Als ik "return false" weg haal uit de form regel kan ik wel submitten alleen krijg ik dan niet de longitude en latitude.

Wat moet ik veranderen zodat als ik op submit klik de longitude en latitude mooi geladen worden en dat daarna het formulier verzonden wordt.

Groeten,
Martijn

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Longitude en Latitude / van Adres</title></p><p>    <script src="http://maps.google.com/maps?file=api&v=2&key=JE EIGEN KEY" type="text/javascript" charset="utf-8"></p><p>     </script>
<script type="text/javascript">
    //<![CDATA[</p><p>    function load() {
      if (GBrowserIsCompatible()) {
        geocoder = new GClientGeocoder();
       }
    }</p><p>    function showAddress(geolocation) {
      if (geocoder) {
        geocoder.getLatLng(
          geolocation,
          function(point) {
            if (!point) {
              alert(geolocation + " not found");
            } else {
  document.geoform.longitude.value = point.x;
  document.geoform.latitude.value = point.y;
            }
          }
        );
      }
    } </p><p>    //]]>
    </script>
</head>
  <body onload="load()"></p><p><form action="#" name="geoform" id="geoform" onsubmit="showAddress(this.geolocation.value); return false">
<input  name="geolocation" value="" size="50"  /></p><p>Decimal Longitude:
<input  name="longitude" type="text" id="longitude" value="" /></p><p>Decimal Latitude:
<input  name="latitude" type="text"  id="latitude"  value="" /></p><p><input type="submit" value="Longitude/latitude codes" />
</form></p><p></body></p><p></html>

PS: Na submitten zag ik dat er vreemde < p > codes verschijnen. Deze horen er niet thuis.
(opmaak is simpel gehouden voor test doeleinden en heeft geen < p > .

W0utR

W0utR op 24 januari 2012 #

Met .submit() kan je een form verzenden via javascript (http://www.javascript-coder.com/javascript-form/javascript-form-submit.phtml)

Het ophalen van die longitude en latitude duurt wss een paar seconden, waardoor je dus even moet wachten.
Dus vanaf je die hebt, kan je gewoon de .submit() gebruiken.

Jakko Westerbeke

Jakko Westerbeke op 24 januari 2012 #

Gfive - op 23 januari 2012longitude en latitude

Lengtegraad en breedtegraad

Gfive

Gfive op 24 januari 2012 #

@W0utR
In dit geval zou er dan 2 keer geklikt moeten worden. 1 keer voor ophalen longitude en latitude en 1 keer met .submit()? Aangezien een rechtstreekse .submit() niet werkt. (net even getest)

Maar nu het volgende.
De adres gegevens heb ik al, deze kan ik vevolgens in een hidden field stoppen. (dit kan ik met het CMS doen) vervolgens longitude en latitude oproepen zodra de pagina laad. Maar hoe doe ik dit.
Ik heb immers al een body onload.

@Jakko Westerbeke
Ik weet het

W0utR

W0utR op 24 januari 2012 #

Nee nee, de submit gebeurd via javascript:

if (!point) {
              alert(geolocation + " not found");
            } else {
  document.geoform.longitude.value = point.x;
  document.geoform.latitude.value = point.y;
  // submit form
            }

Je moet dus wachten tot je de locatie hebt alvorens je alles kan verzenden

Gfive

Gfive op 24 januari 2012 #

@W0utR
Opgelost.

<body onload="load();showAddress(document.getElementById('geolocation').value);">
Dan kan ik de onSubmit uit de form tag halen en daarna gewoon op submit klikken

Je kunt alleen reageren met een gratis OMT account.
Log in of registreer.

Inloggen

Over dit topic

Gestart op 23 januari 2012 door Gfive

Laatste reactie door Gfive

Reageer op dit topic