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

JavaScript Discussion :

Remplir des champs automatiquement


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Intégratrice Web
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Intégratrice Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 64
    Points : 34
    Points
    34
    Par défaut Remplir des champs automatiquement
    Bonjour

    J'ai créé un select qui est rempli via une table (ici des villes). Lors de la sélection d'une ville, il que je remplisse 4 champs texte.

    Ci-dessous le select, les champs à remplir et le JS. Pour le 1er (code_insee) ça fonctionne car je récupère la valeur du select mais comment faire pour les 3 autres ?
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <select id="localisation" class="custom-select" placeholder="Ville" onchange="remplir(this.value);">
    	<option value="">Ville</option>
    	<?php
            global $wpdb;
            $sql = $wpdb->get_results("SELECT ville_nom_reel, ville_code_postal, ville_code_commune, ville_longitude_deg, ville_latitude_deg FROM villes_france");
            foreach($sql as $req){
                    echo '<option value="'.$req->ville_code_commune.'">'.$req->ville_nom_reel.' ('.$req->ville_code_postal.')</option>';
            }
            ?>
    </select>
    <input type="text" id="code_insee" name="code_insee" value="" readonly /><!-- doit être rempli avec ville_code_commune -->
    <input type="text" id="longitude" name="longitude" value="" readonly /><!-- doit être rempli avec ville_longitude_deg -->
    <input type="text" id="latitude" name="latitude" value="" readonly /><!-- doit être rempli avec ville_latitude_deg -->
    <input type="text" id="ville_reelle" name="ville_reelle" value="" readonly /><!-- doit être rempli avec ville_nom_reel -->

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var code_insee = "";
    function remplir(valeur){ // La fonction
    	code_insee = valeur; // on l'enregistre dans code_insee
    	document.getElementById("code_insee").value = code_insee; // On insère code_insee dans le champ
    }
    Merci d'avance

  2. #2
    Rédacteur

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

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Il existe de nombreuses solutions pour récupérer les informations dont tu as besoin.
    • Un appel AJAX qui te renvoie les données depuis le serveur.
    • Concaténer les données dans l'attribut value de l'option (avec éventuellement un séparateur) puis les scinder (split()).
    • Utiliser les attributs data-*.
    • ...

    Sinon, ton code est assez maladroit : pourquoi créer une variable globale (code_insee) dont tu n'as pas besoin ? Le paramètre valeur est directement accessible et suffit amplement.
    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

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Intégratrice Web
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Intégratrice Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 64
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Il existe de nombreuses solutions pour récupérer les informations dont tu as besoin.
    • Un appel AJAX qui te renvoie les données depuis le serveur.
    • Concaténer les données dans l'attribut value de l'option (avec éventuellement un séparateur) puis les scinder (split()).
    • Utiliser les attributs data-*.
    • ...
    Ok, la méthode avec split() à l'air plus simple à réalisée. Aurais-tu un exemple stp ?


    Citation Envoyé par Bovino Voir le message
    Sinon, ton code est assez maladroit : pourquoi créer une variable globale (code_insee) dont tu n'as pas besoin ? Le paramètre valeur est directement accessible et suffit amplement.
    J'ai récupéré le code sur un autre site et ils avaient plusieurs valeurs et je n'ai pas modifié, c'est corrigé ^^

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Intégratrice Web
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Intégratrice Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 64
    Points : 34
    Points
    34
    Par défaut
    J'ai fait comme ça du coup :
    HTML :
    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
    <select id="localisation" class="custom-select" placeholder="Ville" onchange="remplir(this.value);">
    	<option value="">Ville</option>
    	<?php
            global $wpdb;
            $sql = $wpdb->get_results("SELECT ville_nom_reel, ville_code_postal, ville_code_commune, ville_longitude_deg, ville_latitude_deg FROM villes_france");// LIMIT 10
            foreach($sql as $req){
                    $code_insee = $req->ville_code_commune;
                    $longitude = $req->ville_longitude_deg;
                    $latitude = $req->ville_latitude_deg;
                    $ville = $req->ville_nom_reel;
                    echo '<option value="'.$code_insee.'/'.$longitude.'/'.$latitude.'/'.$ville.'">'.$req->ville_nom_reel.' ('.$req->ville_code_postal.')</option>';
            }
            ?>
    </select>
    <input type="text" id="code_insee" name="code_insee" value="" readonly />
    <input type="text" id="longitude" name="longitude" value="" readonly />
    <input type="text" id="latitude" name="latitude" value="" readonly />
    <input type="text" id="ville_reelle" name="ville_reelle" value="" readonly />
    JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type="text/javascript">
    	function remplir(valeur){
    		var myString = valeur;
    		var myArray = myString.split('/');
    		document.getElementById("code_insee").value = myArray[0];
    		document.getElementById("longitude").value = myArray[1];
    		document.getElementById("latitude").value = myArray[2];
    		document.getElementById("ville_reelle").value = myArray[3];
    	}
    </script>
    Est-ce correct sémantiquement ?

  5. #5
    Rédacteur

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

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Encore une fois, ça te sert à quoi de déclarer une variable alors que tu as déjà une variable (passée en paramètre) qui contient cette valeur ???
    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

  6. #6
    Nouveau membre du Club
    Femme Profil pro
    Intégratrice Web
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Intégratrice Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 64
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Encore une fois, ça te sert à quoi de déclarer une variable alors que tu as déjà une variable (passée en paramètre) qui contient cette valeur ???
    J'ai encore voulu courir avant de savoir marcher ^^

    Et voilà (j'espère que c'est correct cette fois !) Et j'ai changé le nom de la variable pour la reconnaître
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type="text/javascript">
    	function remplir(maville){
    		var myArray = maville.split('/');
    		document.getElementById("code_insee").value = myArray[0];
    		document.getElementById("cp_ville").value = myArray[1];
    		document.getElementById("longitude").value = myArray[2];
    		document.getElementById("latitude").value = myArray[3];
    		document.getElementById("ville_reelle").value = myArray[4];
    	}
    </script>
    Merci pour ton aide !

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

Discussions similaires

  1. remplir des champs automatiquement
    Par sheme dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/10/2011, 01h57
  2. [WD-2003] remplir des champs automatiquement
    Par Golgotha dans le forum Word
    Réponses: 1
    Dernier message: 24/11/2009, 12h21
  3. Remplir des champs automatiquement sur un site
    Par Invité dans le forum Débuter
    Réponses: 4
    Dernier message: 09/05/2008, 01h04
  4. remplir des champs texte automatiquement avec base
    Par rvm31 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/11/2007, 09h55
  5. Réponses: 14
    Dernier message: 17/05/2006, 17h16

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