IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

jQuery Discussion :

Materialyze/AJAX/JS Code postal + Villes


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Developpeur Web
    Inscrit en
    Novembre 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

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

    Informations forums :
    Inscription : Novembre 2022
    Messages : 4
    Par défaut Materialyze/AJAX/JS Code postal + Villes
    Bonjour,

    Je viens vous demandez de l'aide pour un problème que j'ai rencontré. Je suis entrain de faire un formulaire qui demande le code postal de la personne et sa ville.
    Lorsque la personne entre son code postal nous aurons une liste autocomplète qui s'affichera afin d'aider l'utilisateur, ensuite une fois choisie nous aurons la ville a entrer manuellement avec également une liste autocomplète qui s'affichera mais cette fois-ci seulement les villes qui appartiennent au code postal choisie. Cela n'empêchera pas l'utilisateur a entrer une ville autre que la liste proposé.

    Ce que j'ai fais :

    Mon formulaire :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <div class="input-field col s12 m4">
                                <input id="cp" onkeypress="verifierChiffre(event); return false;" name="cp" type="text" class="autocomplete validate" placeholder="30000" autocomplete="section-deb postal-code" required>
                                <label for="cp">Code postal *</label>
                                <span id="hcp" class="helper-text" data-error=""></span>
                            </div>
                            <div class="input-field col s12 m4">
                                <input id="vil" name="vil" type="text" placeholder="Nimes" class="autocomplete validate" autocomplete="section-deb address-level1" required>
                                <label for="vil">Ville *</label>
                                <span id="hvil" class="helper-text" data-error=""></span>
                            </div>

    Fonction pour avoir les code postaux :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    var postals = null;
    var villes = null;
     
    function getPostals() {
        let iso = $('#pay option:selected').attr('data-iso');
        $.ajax({
            method: 'POST',
            url: 'ajax/getpostal.php',
            data: {
                ISO: iso
            },
            success: function (response, statut, xhr) {
                postals = JSON.parse(response);
                let instance = M.Autocomplete.getInstance($('#cp'));
                instance.updateData(postals);
            },
            error: function (xhr, statut, erreur) {
                if (xhr.status === 403) {
                    window.location.replace("erreurs/403.html");
                } else if (xhr.status === 404) {
                    M.toast({
                        html: "Ce pays n'a pas de codes postaux",
                        classes: 'red darken-3 rounded'
                    });
                    postals = null;
                }
            }
        });
    }
    fonction pour voir les villes :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    function getVilles() {
        let iso = $('#pay option:selected').attr('data-iso');
        let postal = $('#cp').val();
        if (postal) $.ajax({
            method: 'POST',
            url: 'ajax/getvilles.php',
            data: {
                ISO: iso,
                POSTAL: postal
            },
            success: function (response, statut, xhr) {
                villes = JSON.parse(response);
                let instance = M.FormSelect.getInstance($('#vil'));
                if (instance) instance.destroy();
                else if (villes.length == 1) $('#vil').html('<option value="' + villes[0] + '" selected>' + villes[0] + '</option>');
                else {
                    var html = '<option value="" disabled selected>- Choisir -</option>';
                    villes.forEach(ville => {
                        html += '<option value="' + ville + '">' + ville + '</option>';
                    });
                    $('#vil').html(html);
                }
                $('#vil').formSelect();
            },
            error: function (xhr, statut, erreur) {
                if (xhr.status === 403) {
                    window.location.replace("erreurs/403.html");
                } else if (xhr.status === 404) {
                    M.toast({
                        html: "Ce code postal n'a pas de villes",
                        classes: 'red darken-3 rounded'
                    });
                    villes = null;
                }
            }
        });
    }
    resultat :

    Nom : resultat.png
Affichages : 419
Taille : 3,3 Ko
    Nom : resultat2.png
Affichages : 410
Taille : 2,5 Ko

    resultat attendu :

    Nom : resultatatendu.png
Affichages : 412
Taille : 7,2 Ko

    J'ai essayer de faire comme les codes postaux mais avec les villes mais ce fût une echec, je sais que je crée 2 case a cause de mon html:<option> ... </option>, mais je ne sais pas comment faire pour avoir seulement ces même résultat dans une liste mais en autorisant la saisie manuel.

    J'espère mettre fais comprendre... Merci d'avance pour votre aide !

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 702
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 702
    Par défaut
    regardez avec la console de développement de votre navigateur si le code php renvoie les valeurs prévues.
    par exemple avec Firefox, faites Ctrl + Maj + E pour voir l'onglet "réseau" :
    https://developer.mozilla.org/fr/doc...ur_r%C3%A9seau

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Developpeur Web
    Inscrit en
    Novembre 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

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

    Informations forums :
    Inscription : Novembre 2022
    Messages : 4
    Par défaut
    Oui les réponses retourné son correct, nous avons les bonnes villes qui font partie du code postal sélectionné.

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 702
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 702
    Par défaut
    s'il n'y a personne ici qui utilise Materialyze, on va avoir du mal à vous aider.

    en attendant, vous pouvez essayer de passer par la bibliothèque jquery ui :
    https://jqueryui.com/autocomplete/

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Developpeur Web
    Inscrit en
    Novembre 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

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

    Informations forums :
    Inscription : Novembre 2022
    Messages : 4
    Par défaut
    Le problème n'est pas materialyze. C'est l'AJAX mon soucis.

    Nom : Capture d’écran 2022-12-20 164240.png
Affichages : 394
Taille : 38,4 Ko

    Nom : dtrgbtrbrt.png
Affichages : 360
Taille : 17,5 Ko

    Ceci est mon ajax qui permet de commencer a taper un code postal est qu'il propose des données connu. Comme sur l'exemple au dessus.

    Nom : ezfzef.png
Affichages : 400
Taille : 46,0 Ko

    Nom : nnnnnnn.png
Affichages : 358
Taille : 13,8 Ko

    J'ai donc fait pareil avec ma ville, sauf que cette fois dans mon instance je contient toute les villes que je souhaite en data :

    exemple de l'instance pour le code postal :

    Nom : capture.png
Affichages : 362
Taille : 49,7 Ko

    ensuite je saisie un code postal

    Nom : capture_ville.png
Affichages : 369
Taille : 47,1 Ko

    J'ai donc bien les villes correspondant a mon code postal entré, seulement lorsque j'essaye d'entrer une ville correspondante aucun autocomplete s'affiche.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Developpeur Web
    Inscrit en
    Novembre 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

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

    Informations forums :
    Inscription : Novembre 2022
    Messages : 4
    Par défaut resolu
    J'ai chercher refais mon code et fini par trouver une solution par moi même. Si quelqu'un a le même problème qu'il le fasse savoir.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. code postal + ville
    Par debutantasp dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/10/2008, 15h59
  2. [AJAX] code postal ville
    Par guillaume2vo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/06/2008, 10h28
  3. code postal + ville
    Par debutantasp dans le forum ASP
    Réponses: 8
    Dernier message: 18/01/2008, 19h22
  4. [Formulaire] relation code Postal/ville
    Par Frenchguy dans le forum IHM
    Réponses: 12
    Dernier message: 15/11/2006, 16h37
  5. [MySQL] code postale - ville
    Par debut_php dans le forum PHP & Base de données
    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