Aide à la saisie des adresses avec google map -- JQuery JavaScript google map address form autocomplete

Si un jour vous avez eu a faire a la saisie d'un formulaire d'inscription sur un site internet vous avez certainement trouvé long de remplir tous les champs des formulaires un par un . Et si vous développez vous même ce genre de formulaires vous avez certainement cherché a automatiser le remplissage des champs du moins au mieux
Voici un plugin JQUERY qui pourrais vous facilité la complétion automatique des champs d'adresse , nom de rur, code postal , ville , pays ...
le plugin est base sur l'API GOOGLE MAP qui vous assiste lors de la saisie des adresse
pour mettre en place ce plugin n'ouliez pas d inclure JQUERY etgoogle map dans vos pages comme ceci :
 
 

puis définir le plugin lui même que vous pouvez faire dans la même page ou dans un fichier JS séparé comme ceci:
$(function (){

 $.fn.googleMapAuocompleteAddress = function(opt) {
    var options = $.extend({}, {
    }, opt);
   // each : si le plugin est énumérer tous les éléments du selector   
         return this.each(function(i, e){
             //l’élément a qui s’applique le plugin ne peut etre qu un champs input
              if(! $(this).is("input"))return ;
         var autocomplete = new google.maps.places.Autocomplete($(this).get(0));
         //Définir le champs comme autocomplete
       //Attacher un évènement chaque fois que l’adresse saisie change   
       google.maps.event.addListener(autocomplete, 'place_changed', function() {
          //Récupérer les lieux correspondants a l adresse saisie 
           var place = autocomplete.getPlace();
   //Récupérer les composants de l adresse    
    var componenents=place.address_components||[];
    var ln=componenets.length;
     for (var i=0 ; i<ln;i++) { 
            var editor=$("[data-role|="+componenets[i].types[0]+"]"); 

             //Regarder tous les elements html dont l'attribut data-role
             // ressemble a street_number, route,locality,postal_code,country ...

   if(editor.is("input")){
       editor.val(componenets[i].long_name);
                     //si l'element est un champs on rempli sa valeur
   }else{
                     //sinon son html 
      editor.html(componenets[i].long_name);
   }//end if 
   }//end for 
        
 });//end addListener 
     });//end each  
   };//end googleMapAuocompleteAddress
});


Voici maintenant un exemple d'utilisation de ce plugin












Vous tester directement ici le résultat voici un Plunker

8 commentaires:

  1. Bonjour,
    J'aimerais beaucoup récupérer la String de la ville pour pouvoir par la suite calculer la distance entre deux villes.
    Merci
    Cordialement
    Kevin Beauchamps

    RépondreSupprimer
  2. Bonjour Kevin ,
    quelle string veux tu récupérer le Nom de la ville tu veux dire?

    RépondreSupprimer
  3. Bonjour, pourquoi le code postale ne marche pas??

    RépondreSupprimer
  4. Bonsoir Hamdi
    y a pas de raison que le code postal ne marche pas , sauf si google ne connait pas la localite !!!
    sinon tu me fais un exemple sur fidler et je regarderai

    RépondreSupprimer
  5. bonjour
    est il possible d'avoir dans le même formulaire deux instances de recherche par exemple une pour une ville de départ et l'autre pour la ville d’arrivée ? et comme dans ton script récupérer le code postal de la ville de départ ET le code postal de la ville d'arrivé , l'adresse de départ et l'adresse de la ville d'arrivé

    merci

    RépondreSupprimer
  6. Bonjour, j'ai un souci avec ce script puisque je souhaiterais récupérer l'adresse dans ma base SQL via un INSERT INTO et quand j'utilise le script, les données ne se remplissent pas automatiquement dans le formulaire comme dans l'exemple, alors que le champs Google maps fonctionne bien... merci pr votre aide !

    RépondreSupprimer
  7. J'ai juste repris, les deux scripts via le site, peut etre qu'il faut que j'active qq chose pour le javascript ou autre... merci
    http://embed.plnkr.co/tVVu3FEOYObimNhJy4Gn/index.html
    http://embed.plnkr.co/tVVu3FEOYObimNhJy4Gn/addressAutocomplete.js

    RépondreSupprimer
  8. Bonjour ft820!

    J'ai essaye le plnkr que tu as envoyé et ca marche je comprends pas ta question peut etre

    RépondreSupprimer