2012-01-27 75 views
0

所以我在open.php中有一个字段地址,当用户开始写东西时,会出现自动完成的google地址。当用户选择一个地址时,地图上会放置一个标记,并填充纬度/长度字段。将一个值设置为字段

现在我去加入的可能性为用户填写前一个页面的地址栏,然后open.php会从URL地址:

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

但随后的JS脚本不会运行来填充地图,拉特和长。我该如何解决这个问题?

(我需要为用户的可能性填补前一个页面的地址栏,因为用户可以在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 

回答

0

试着这么做

$('#address').trigger('change'); 
相关问题