Je fais du géocodage en utilisant l'API Google Maps. L'utilisateur remplit un formulaire avec une adresse, et quand on clique sur le bouton Soumettre, une fonction codeAddress() est appelée, qui est supposée effectuer le géocodage, mais cela ne fonctionne pas. En tant que test, j'ai codé en dur l'adresse et appelez la fonction codeAddress lorsque le document est initialisé(). Lorsque codeAddress est appelé lorsque la page est prête, cela fonctionne bien, mais quand il est appelé par le script onclick, il ne fonctionne pas (aucune erreur renvoyée par firebug!).La fonction de géocodage fonctionne lorsqu'elle est appelée dans le script initialisé, mais pas dans le script onclick
Quelqu'un peut-il aider? Merci
(vous pouvez coller le code ici: http://code.google.com/apis/ajax/playground/?exp=maps#map_simple, ou modifier la clé api google)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google Maps API Sample</title>
<script src="http://maps.google.com/maps?file=api&v=2&sensor=false&key=ABQIAAAA1XbMiDxx_BTCY2_FkPh06RRaGTYH6UMl8mADNa0YKuWNNa8VNxQEerTAUcfkyrr6OwBovxn7TDAH5Q"></script>
<script type="text/javascript">
function initialize() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(37.4419, -122.1419), 13);
codeAddress();
}
}
function codeAddress() {
var geocoder = new GClientGeocoder();
var address = "paseo montjuic, 30, barcelona, spain";
geocoder.getLatLng(address, function(point) {
if (point) {
alert(point);
} else {
alert("Geocode was not successful");
}
});
}
</script>
</head>
<body onload="initialize()" onunload="GUnload()" style="font-family: Arial;border: 0 none;">
<div id="map_canvas" style="width: 500px; height: 300px"></div>
<form action="" method="POST">
<!-- stuff -->
<input type="Submit" value="Submit" onclick="codeAddress();" />
</form>
</body>
</html>
Mais si codeAddress() était appelé onclick, je verrais l'alerte, non? – jul
cela fonctionnerait comme vous l'appelez du script. ce qui signifie que vous devriez voir l'alerte. – mauris
Ok, il semble que la page se recharge lorsque le formulaire est soumis sans attendre codeAddress(). Fonctionne avec "return false". Merci! – jul