将值设置为字段

时间:2012-01-27 09:53:49

标签: php javascript get field auto-populate

所以我在open.php中有一个字段地址,当用户开始写一些内容时,会自动完成谷歌地址。当用户选择地址时,标记位于地图上并且填充了纬度/经度长字段。

现在我添加了用户填写上一页中的地址字段的可能性,然后open.php从url获取地址:

<input id="address" type="text" value="<?php echo $_GET['query']; ?>"/>

但是JS脚本不会运行填充map,lat和long。我该如何解决这个问题?

(我需要用户填写上一页的地址字段,因为用户可以直接在open.php上输入)

谢谢!

来自JS的代码:

var geocoder;
var map;
var marker;

function initialize(){
//MAP
  var latlng = new google.maps.LatLng(49.599,6.134);
  var options = {
    zoom: 14,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.HYBRID
  };

  map = new google.maps.Map(document.getElementById("map_canvas"), options);

  //GEOCODER
  geocoder = new google.maps.Geocoder();

  marker = new google.maps.Marker({
    position: latlng,
    map: map,
    animation: google.maps.Animation.BOUNCE,
    draggable: true
  });

}

$(document).ready(function() { 

  initialize();

  $(function() {
    $("#address").autocomplete({
      //This bit uses the geocoder to fetch address values
      source: function(request, response) {
      // geocoder.geocode( {'address': request.term }, function(results, status) {
        geocoder.geocode( {'address': request.term + ', lu' }, function(results, status) {
          response($.map(results, function(item) {
            return {
              label:  item.formatted_address,
              value: item.formatted_address,
              latitude: item.geometry.location.lat(),
              longitude: item.geometry.location.lng()
            }
          }));
        })
      },
      //This bit is executed upon selection of an address
      select: function(event, ui) {
        $("#latitude").val(ui.item.latitude);
        $("#longitude").val(ui.item.longitude);
        var location = new google.maps.LatLng(ui.item.latitude, ui.item.longitude);
        marker.setPosition(location);
        map.setCenter(location);
      }
    });
  });

  //Add listener to marker for reverse geocoding
  google.maps.event.addListener(marker, 'drag', function() {
    geocoder.geocode({'latLng': marker.getPosition()}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        if (results[0]) {
          $('#address').val(results[0].formatted_address);
          $('#latitude').val(marker.getPosition().lat());
          $('#longitude').val(marker.getPosition().lng());
        }
      }
    });
  });

});

enter code here

1 个答案:

答案 0 :(得分:0)

尝试类似

的内容
$('#address').trigger('change');