получить результаты формы на следующей странице

0

Я использую эту форму для геокодирования адресов на карте. Я пытаюсь переместить форму на отдельную страницу, которая на странице отправляется на страницу с картой. Я не знаю, как получить эти отдельные... любые советы о том, как отделить форму от карты?

 <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">
Теги:
forms
google-maps
geocoding

2 ответа

0
Лучший ответ

Во-первых, вам нужно установить имя для поля, которое вы хотите передать на следующую страницу:

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

Для получения данных формы вам понадобится код сервера. Точный код будет зависеть от вашего выбора языка для этого кода. например, для PHP код для использования этого на странице, которая его получает (тот, в действии формы), будет

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

А затем вы можете использовать переменную $ address на этой странице.

0

Самый простой способ сделать это - передать результат адреса геокодирования через URI, например: URI страницы с картой: http://exmaple.com/map/, когда вы возвращаете эту страницу, добавляете результат с URI, поэтому URI будет: http://example.com/map/?address=result, а затем проанализировать URI. Другим способом, вы можете использовать Cross Document Message, когда вы отправляете адрес геокодирования, отправьте сообщение в родительское окно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню