Używam tego formularza do adresów geokodowych na mapę. Próbuję przenieść formularz do oddzielnej strony, na której przesyłanie przechodzi na stronę z mapą. Nie wiem, jak dostać te rozdzielone ... wszelkie porady, jak rozdzielić formularz z mapy?

 <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=true&libraries=places"> </script>
<style>
  #map {
    height: 400px;
    width: 600px;
    border: 1px solid #333;
    margin-top: 0.6em;
  }
</style>
<script>
var geocoder;
var map;
  var infowindow;
  function initialize() {
    geocoder = new google.maps.Geocoder();
    var loca = new google.maps.LatLng( 33.4987780197 , -117.70713998);

    map = new google.maps.Map(document.getElementById('map'), {
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      center: loca,
      zoom: 8
    });
  }
  function callback(results, status) {
    if (status == google.maps.places.PlacesServiceStatus.OK) {
      for (var i = 0; i < results.length; i++) {
        createMarker(results[i]);
      }
    }
  }
  function createMarker(place) {
    var placeLoc = place.geometry.location;
    var marker = new google.maps.Marker({
      map: map,
      position: place.geometry.location
    });
    google.maps.event.addListener(marker, 'mouseover', function() {
      infowindow.setContent(place.name);
      infowindow.open(map, this);
    });
  }
  function codeAddress() {
  var address = document.getElementById("address").value;
  geocoder.geocode( { 'address': address}, function(results, status) {
  if (status == google.maps.GeocoderStatus.OK) {
    map.setCenter(results[0].geometry.location);
    var marker = new google.maps.Marker({
        map: map,
        position: results[0].geometry.location
    });
    var request = {
      location: results[0].geometry.location,
      radius: 50000,
      name: 'ski',
      keyword: 'mountain',
      type: ['park']
    };
    infowindow = new google.maps.InfoWindow();
    var service = new google.maps.places.PlacesService(map);
    service.nearbySearch(request, callback);
  } else {
    alert("Geocode was not successful for the following reason: " + status);
  }
});
 }
    google.maps.event.addDomListener(window, 'load', initialize);
  </script>
  </head>
  <body>   
     <form  action="map" method="post">
     <label for="zip">Zip Code: </label>
     <input type = "text" id="address" placeholder = "orange county" autofocus></input>
     <input type="button" value="Submit" onclick="codeAddress();" ></input>
     </form>
    <div id="map"></div>
    <div id="text">
0
user3029877 2 grudzień 2013, 11:41

2 odpowiedzi

Najlepsza odpowiedź

Po pierwsze, musisz ustawić nazwę pola, który chcesz przejść do następnej strony:

<input type = "text" id="address" name="address" placeholder = "orange county" autofocus></input>

Potrzebowałbyś pewnego kodu serwera, aby otrzymać dane formularza. Dokładny kod będzie zależał od wybranego języka dla tego kodu. na przykład dla PHP kodu, aby użyć tego na stronie, która go otrzymuje (ten w akcji formularza) byłby

<?php
$address=isset($_POST['address'])?$_POST['address']:'';
?>

A następnie możesz użyć zmiennej $ Adres na tej stronie.

0
navjotk 3 grudzień 2013, 09:25

Najprostszym sposobem na to jest przekazanie wyniku adresów geokodowych za pośrednictwem URI, na przykład: URI strony z mapą jest: http://exmaple.com/map/ po powrocie tej strony , dodaj wynik z URI, więc URI staje się: http://examplollow/map/?Address= Wynik, a następnie przeanalizuj URI. Innym sposobem można użyć wiadomości krzyżowej, gdy adres geokodowania wyślij wiadomość do okna macierzystego.

0
danny.hu 2 grudzień 2013, 08:13