Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    juin 2008
    Messages
    23 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2008
    Messages : 23 648
    Points : 91 557
    Points
    91 557
    Billets dans le blog
    20

    Par défaut AutoComplétion Code Postal/Ville avec jQuery



    Xavier ZOLEZZI vous propose son nouvel article : AutoComplétion Code Postal/Ville avec jQuery.

    Cet article vous présente étape par étape la mise en place d'une autocomplétion pour les communes françaises et leurs codes postaux.

    N'hésitez pas à faire part de vos remarques et commentaires concernant cet article.

    à lui !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    mai 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : mai 2015
    Messages : 2
    Points : 5
    Points
    5

    Par défaut Plusieurs autocomplétions sur la même page

    Bonjour à tous,

    J'ai installé avec succès le script d'autocomplétion détaillé dans l'article, mais je me heurte à deux problèmes...

    - Tous les noms de ville comportant un accent renvoient un "null", j'ai pourtant bien mis les champs en UTF8...

    - J'aimerais pouvoir réaliser plusieurs fois le script sur une même page (pour fournir, notamment, une adresse de départ, une adresse d'arrivée, celles-ci étant des champs clairement distincts de mon formulaire) sans avoir bien sûr à le recopier bêtement. Y a-t-il une solution pour ce faire? Par exemple en donnant une variable supplémentaire, celle de la partie du formulaire concerné par l'exécution en cours... Mais je ne connais pas la syntaxe à utiliser :-/

    Je suis encore débutant. Merci de votre secours!

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    janvier 2011
    Messages
    13 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : janvier 2011
    Messages : 13 002
    Points : 31 094
    Points
    31 094

    Par défaut

    Bonjour,
    (...)j'ai pourtant bien mis les champs en UTF8...
    peut être n'est ce pas suffisant
    Passez à l'UTF-8 sans manquer une étape.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    mai 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : mai 2015
    Messages : 2
    Points : 5
    Points
    5

    Par défaut

    Merci pour ce lien, je vais le lire attentivement :-)

    Pour le reste, j'ai trouvé tout seul comme un grand (après une bonne nuit de sommeil...). J'ai numéroté chaque étape dans mon formulaire,

    ajouté le numéro à chaque id de champ concerné (cp1, cp2, ville1, ville2),

    ajouté à chaque champ cp et ville un attribut numreq="le numéro en question",

    puis ajouté dans le script " + $(this).attr('numreq')" à chaque référence par id à un champ du formulaire. De cette manière, chaque champ contient en lui même la référence du champ ville ou code postal qui lui correspond.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    octobre 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : octobre 2015
    Messages : 1
    Points : 1
    Points
    1

    Par défaut AutoComplétion Code Postal/Ville

    Bonjour

    Edit :
    Après avoir repris le script cet après midi, j'ai trouvé la réponse, évidente, tellement évidente que je ne l'avais pas vue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $strQuery = "SELECT CP CodePostal, VILLE Ville FROM autocomplete WHERE ";
    doit être remplacé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $strQuery = "SELECT CP CodePostal, VILLE Ville FROM cp_autocomplete WHERE ";
    Tellement convaincu que le soucis venait de mon incompréhension de la POO, je n'ai même pas vu cette erreur évidente... J'espère au moins que ça pourra servir à quelqu'un d'autre

    Je cherche à réaliser ce script très sympa, mais je rencontre un petit soucis.
    Mes données sont bien envoyées au script PHP qui construit la requête, mais cette requête n'est pas correcte.

    en fin de script, voici ce que me retourne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $query->debugDumpParams();
     
    SQL: [115] SELECT CP CodePostal, VILLE Ville FROM autocomplete WHERE CP LIKE :codePostal AND CODEPAYS
     = 'FR' LIMIT 0, :maxRows
    Params:  2
    Key: Name: [11] :codePostal
    paramno=-1
    name=[11] ":codePostal"
    is_param=1
    param_type=2
    Key: Name: [8] :maxRows
    paramno=-1
    name=[8] ":maxRows"
    is_param=1
    param_type=1
    Que ça soit le CP ou la ville, le like ne prend pas en compte la valeur que j'entre dans le champ. Pourtant, en vérifiant avec firebug, j'ai bien des données envoyées en POST

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    codePostal=702&pays=FR&maxRows=10
    Je n'y connais pas grand chose en php orienté objet et j'ai donc un peu de mal à comprendre d'où vient le problème.
    Aussi, est il normal que la class PHP soit aussi courte ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    class AutoCompletionCPVille {
    	public $CodePostal;
    	public $Ville;
    }
    ?>
    Encore une fois, n'y connaissant pas grand chose en POO, j'ai du mal à saisir l'utilité de cette class qui ne semble au final rien retourner, surtout quand on la compare à la class ASP.NET C# qui est plus élaborée. Est il possible qu'il y ai eu un oubli dans le tuto?

    Je vais bien entendu continuer à chercher par moi même ce week-end, mais un coup de main ne serait pas de refus

    En tout cas merci, ce script une fois en place va vraiment permettre de gagner du temps

    Bon week-end

    Thomas

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    juin 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : juin 2016
    Messages : 1
    Points : 1
    Points
    1

    Par défaut renvois "null" pour les villes avec accent

    Citation Envoyé par lauxile Voir le message

    - Tous les noms de ville comportant un accent renvoient un "null", j'ai pourtant bien mis les champs en UTF8...
    Bonjour,

    J'ai aussi ce problème de renvois "null" pour les villes avec accent.
    J'ai bien suivi les étapes de NoSmoking pour passer correctement en UTF-8 mais rien à faire...

    As-tu la solution?

  7. #7
    Nouveau Candidat au Club
    Femme Profil pro
    Webmaster
    Inscrit en
    octobre 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Conseil

    Informations forums :
    Inscription : octobre 2016
    Messages : 1
    Points : 1
    Points
    1

    Par défaut Trier les villes par ordre alphabétique

    Bonsoir à toutes et à tous,
    Super cette AutoComplétion.
    Avant toute chose je tiens à vous signaler que je suis novice.
    J'ai télécharger "Autocomplétion PHP - SQLite" et ça fonctionne bien. J'ai seulement une petite question :
    Comment faut-il procéder pour obtenir la liste des communes par ordre alphabétique, après saisie du cp.
    Je vous remercie d'avance et bonne soirée.

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    janvier 2011
    Messages
    13 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : janvier 2011
    Messages : 13 002
    Points : 31 094
    Points
    31 094

    Par défaut

    il te faut faire le tri de tes données au retour serveur dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    success: function (data){
    }

  9. #9
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    janvier 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : janvier 2017
    Messages : 1
    Points : 3
    Points
    3

    Par défaut Si vous obtenez 'null' pour les villes avec accents

    Bonjour à tous,

    Si vous obtenez la valeur "null" pour toutes les villes avec accents il suffit de modifier la connexion à votre base de données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $db = new PDO('mysql:host=votre_hote;dbname=votre_bdd', 'votre_login', 'votre_mdp', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));

  10. #10
    Membre habitué
    Profil pro
    Developpeur web et Access VBA
    Inscrit en
    janvier 2003
    Messages
    437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur web et Access VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2003
    Messages : 437
    Points : 196
    Points
    196

    Par défaut

    Bonjour,

    Merci pour ce script qui fonctionne à merveille !!!
    Je cherche à rajouter un css pour gérer la liste autrement, comment procéder, le fichier jquery-ui.css est très long et beaucoup de choses semblent ne servir à rien...
    Si vous avez une idée pour gérer la taille de la police et des lignes
    Merci !
    VrroOOOAAAAAPPPPPPPPPP !!!

  11. #11
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    novembre 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : novembre 2013
    Messages : 24
    Points : 14
    Points
    14

    Par défaut

    Bonjour,

    Comment faire pour modifier la recherche, si je veus chercher dans tous le nom de la ville et non les premiers caractères. par exemple je voudrais qu'apparaisse La Madeleine si je tape "made".

    En tous cas super tuto, très intéréssant! Merci beaucoup.

  12. #12
    Membre à l'essai Avatar de lesitadom39
    Homme Profil pro
    Retraité
    Inscrit en
    août 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : août 2015
    Messages : 23
    Points : 21
    Points
    21

    Par défaut affichage des 10 premiers résultats

    Bon, tout fonctionne bien,sauf....... que les recherches ne m'affichent que les dix premières villes correspondants à un code postal????

  13. #13
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    janvier 2011
    Messages
    13 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : janvier 2011
    Messages : 13 002
    Points : 31 094
    Points
    31 094

    Par défaut

    @lesitadom39 :
    La limitation est dans le code avant envoi au serveur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var objData = {};
    if ($(this.element).attr('id') == 'cp')
    {
      objData = {  codePostal: request.term,  pays: 'FR',  maxRows: 10};
    } 
    else
    {
      objData = {  ville: request.term,  pays: 'FR',  maxRows: 10 };
    }
    c'est la données maxRows qui limite les réponses coté serveur
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //Limite
    if (isset($_POST["maxRows"]))
    {
        $strQuery .= "LIMIT 0, :maxRows";
    }

  14. #14
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    janvier 2011
    Messages
    13 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : janvier 2011
    Messages : 13 002
    Points : 31 094
    Points
    31 094

    Par défaut

    @tom.dev :
    c'est au niveau de la requête coté serveur que tu regardes.

  15. #15
    Membre à l'essai Avatar de lesitadom39
    Homme Profil pro
    Retraité
    Inscrit en
    août 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : août 2015
    Messages : 23
    Points : 21
    Points
    21

    Par défaut

    Il faut donc que j'augmente (par exemple à 100):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var objData = {};
    	if ($(this.element).attr('id') == 'cp')
    	{
    		objData = { codePostal: request.term, pays: 'FR', maxRows: 100 };
    	}
    	else
    	{
    		objData = { ville: request.term, pays: 'FR', maxRows: 100 };
    	}
    ??????
    Merci pour la réponse

  16. #16
    Nouveau Candidat au Club
    Femme Profil pro
    vacancier
    Inscrit en
    janvier 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : vacancier

    Informations forums :
    Inscription : janvier 2018
    Messages : 1
    Points : 1
    Points
    1

    Par défaut Merci

    Un grand merci ca fonctionne à merveille et ca m'a permis de comprendre le fonctionnement de 'autocomplete'

Discussions similaires

  1. [AJAX] AutoComplétion Code Postal/Ville
    Par paraglider dans le forum jQuery
    Réponses: 4
    Dernier message: 17/02/2016, 17h48
  2. Code postal / ville avec du javascript
    Par ziko963 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/11/2010, 17h10
  3. [Formulaire] relation code Postal/ville
    Par Frenchguy dans le forum IHM
    Réponses: 12
    Dernier message: 15/11/2006, 16h37
  4. code postale - ville
    Par debut_php dans le forum PHP & MySQL
    Réponses: 8
    Dernier message: 29/06/2006, 16h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo