Dear all,

I've tried to look into old posts and when not finding the needed
guidance I decided to post a new thread...

My challenge:
I need to pass the lat and lng to a PHP-script via a hidden input-
field. Yes, sounds basic and it is. I'm fairly good in PHP but a
newbie when it comes to Javascript and AJAX and would truely
appriciate any help.

I'm reusing a script that lets the user search for a location and then
also drag the marker to a specif place if needed. After pinpointing
the locating the user will also add additional text into other forms
and the (s)he should submit the form. I would then like the lat and
lng to be passed to the PHP-script. The map can be found at www.g8journey.com

I'm planning to use the following code;

var html ="<form method='post' enctype='multipart/form-data'
action='plog-upload.php'><input type='hidden' name='lat' value='"+p
[0]+"' /><input type='hidden' name='lng' value='"+p[1]+"' />";
document.write(html);

Where in the javascript should I place it?

Any help is appriciated! Thank you all!

Total script looks like this, located inbetween the head-tags;

<script src="http://maps.google.com/maps?
file=api&amp;v=2&amp;sensor=false&amp;key=key" type="text/
javascript"></script>
      <script type="text/javascript">
    //<![CDATA[

    if (GBrowserIsCompatible()) {

    var map;
    var geo;
    var reasons=[];



    function load() {
      map = new GMap(document.getElementById("map"));
      map.addControl(new GLargeMapControl());
      map.addControl(new GMapTypeControl());
      map.setCenter(new GLatLng(20,0),2);

      // ====== Create a Client Geocoder ======
      geo = new GClientGeocoder();

      // ====== Array for decoding the failure codes ======
      reasons[G_GEO_SUCCESS]            = "Success";
      reasons[G_GEO_MISSING_ADDRESS]    = "Missing Address: The
address was either missing or had no value.";
      reasons[G_GEO_UNKNOWN_ADDRESS]    = "Unknown Address:  No
corresponding geographic location could be found for the specified
address.";
      reasons[G_GEO_UNAVAILABLE_ADDRESS]= "Unavailable Address:  The
geocode for the given address cannot be returned due to legal or
contractual reasons.";
      reasons[G_GEO_BAD_KEY]            = "Bad Key: The API key is
either invalid or does not match the domain for which it was given";
      reasons[G_GEO_TOO_MANY_QUERIES]   = "Too Many Queries: The daily
geocoding quota for this site has been exceeded.";
      reasons[G_GEO_SERVER_ERROR]       = "Server error: The geocoding
request could not be successfully processed.";
    }


    // ===== list of words to be standardized =====
    var standards = [   ["road","rd"],
                        ["street","st"],
                        ["avenue","ave"],
                        ["av","ave"],
                        ["drive","dr"],
                        ["saint","st"],
                        ["north","n"],
                        ["south","s"],
                        ["east","e"],
                        ["west","w"],
                        ["expressway","expy"],
                        ["parkway","pkwy"],
                        ["terrace","ter"],
                        ["turnpike","tpke"],
                        ["highway","hwy"],
                        ["lane","ln"]
                     ];

    // ===== convert words to standard versions =====
    function standardize(a) {
      for (var i=0; i<standards.length; i++) {
        if (a == standards[i][0])  {a = standards[i][1];}
      }
      return a;
    }

    // ===== check if two addresses are sufficiently different =====
    function different(a,b) {
      // only interested in the bit before the first comma in the
reply
      var c = b.split(",");
      b = c[0];
      // convert to lower case
      a = a.toLowerCase();
      b = b.toLowerCase();
      // remove apostrophies
      a = a.replace(/'/g ,"");
      b = b.replace(/'/g ,"");
      // replace all other punctuation with spaces
      a = a.replace(/\W/g," ");
      b = b.replace(/\W/g," ");
      // replace all multiple spaces with a single space
      a = a.replace(/\s+/g," ");
      b = b.replace(/\s+/g," ");
      // split into words
      awords = a.split(" ");
      bwords = b.split(" ");
      // perform the comparison
      var reply = false;
      for (var i=0; i<bwords.length; i++) {
        //GLog.write (standardize(awords[i])+"  "+standardize(bwords
[i]))
        if (standardize(awords[i]) != standardize(bwords[i])) {reply =
true}
      }
      //GLog.write(reply);
      return (reply);
    }


      // ====== Plot a marker after positive reponse to "did you mean"
======
      function place(lat,lng) {
        var point = new GLatLng(lat,lng);
        map.setCenter(point,12);
        map.addOverlay( new GMarker ( point, {draggable: true} ) );
        document.getElementById("message").innerHTML = "";
        //var html ="<form method='post' enctype='multipart/form-data'
action='plog-upload.php'><input type='hidden' name='lat' value='"+lat
+"' /><input type='hidden' name='lng' value='"+lng+"' />"
        //document.write(html);

      }

      // ====== Geocoding ======
      function showAddress() {
        var search = document.getElementById("search").value;
        // ====== Perform the Geocoding ======
        geo.getLocations(search, function (result)
          {
            map.clearOverlays();
            if (result.Status.code == G_GEO_SUCCESS) {
              // ===== If there was more than one result, "ask did you
mean" on them all =====
              if (result.Placemark.length > 1) {
                document.getElementById("message").innerHTML = "Did
you mean:";
                // Loop through the results
                for (var i=0; i<result.Placemark.length; i++) {
                  var p = result.Placemark[i].Point.coordinates;
                  document.getElementById("message").innerHTML +=
"<br>"+(i+1)+": <a href='javascript:place(" +p[1]+","+p[0]+")'>"+
result.Placemark[i].address+"<\/a>";
                }
              }
              // ===== If there was a single marker, is the returned
address significantly different =====
              else {
                document.getElementById("message").innerHTML = "";
                if (different(search, result.Placemark[0].address)) {
                  document.getElementById("message").innerHTML = "Did
you mean: ";
                  var p = result.Placemark[0].Point.coordinates;
                  document.getElementById("message").innerHTML += "<a
href='javascript:place(" +p[1]+","+p[0]+")'>"+ result.Placemark
[0].address+"<\/a>";
                } else {
                  var p = result.Placemark[0].Point.coordinates;
                  place(p[1],p[0]);
                  document.getElementById("message").innerHTML =
"Located: "+result.Placemark[0].address;

                }
              }
            }
            // ====== Decode the error status ======
            else {
              var reason="Code "+result.Status.code;
              if (reasons[result.Status.code]) {
                reason = reasons[result.Status.code]
              }
              alert('Could not find "'+search+ '" ' + reason);
            }
          }
        );
      }
    }

    // display a warning if the browser was not compatible
    else {
      alert("Sorry, the Google Maps API is not compatible with this
browser");
    }
//window.location.href = "plog-upload.php?long="point.lat();


    //]]>
    </script>

HTML-part:
<form onsubmit="showAddress(); return false" action="#">
      <input id="search" size="45" type="text" value="" />
      <input type="submit" value="Go!" />
    </form>
        <div id="message"></div>
    <div id="map" style="width: 450px; height: 300px"></div><p>



--~--~---------~--~----~------------~-------~--~----~
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