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
    Membre confirmé
    Femme Profil pro
    Intégratrice Web
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    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
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    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
    Membre confirmé
    Femme Profil pro
    Intégratrice Web
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    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
    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
    Membre confirmé
    Femme Profil pro
    Intégratrice Web
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    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
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    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
    Membre confirmé
    Femme Profil pro
    Intégratrice Web
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    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
    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