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 :

Récupération de données d'une liste vers input


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 412
    Par défaut Récupération de données d'une liste vers input
    Bonjour à toutes et à tous

    Voilà j'essai de composer un petit script qui fonctionne à moitie

    Mon but c'est c'est d'avoir une liste déroulante, en cliquant dessus récupérer les deux valeurs dans deux inputs différents

    Voici ma page

    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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <!DOCTYPE html>
    <html lang="fr">
     
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
     
      <script>
        function myFunction() {
        let elem = document.querySelectorAll(".drop-down");
     
        elem.forEach(element=>{
            element.addEventListener("click", e =>{
                console.log(e.target.innerHTML);
            });
        })
    }
     
    myFunction();
     
    </script>
     
    </head>
     
    <body>
        <select id="liste" onchange="run()">  <!--Call run() function-->
            <option value="banane">fruit</option>
            <option value="haricot">légume</option>
            <option value="pomme">fruit</option>
            <option value="patate">légume</option>
       </select><br><br>
       TextBox1<br>
       <input type="text" id="champ1" placeholder="ici la valeur"><br>
       TextBox2<br>
       <input type="text" id="champ2"  placeholder="ici le texte"><br>
     
       <script>
        function run() {
            document.getElementById("champ1").value = document.getElementById("liste").value;
            document.getElementById("champ2").value = document.getElementById("liste").obj.value;
        }
    </script>
    </body>
     
    </html>

    j'arrive bien a afficher le .value dans le champ1 mais pas le texte dans le champ2

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <optionvalue="banane">fruit</option>

    j'aimerai
    input1 ="banane"
    input2 = "fruit"

    Quelqu'un peut il m'aider à modifier mon script

    Merci à vous

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Bonjour,

    La FAQ indique pas mal ce genre de manip;

    Dans ton cas, ajoute this en argument quand tu appelles ta fonction; tu récupèreras ainsi le select lui-même et ça rendra ton code plus lisible.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <select id="liste" onchange="run(this)">

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function run(s) {
        document.getElementById("champ1").value = s.value;
        document.getElementById("champ2").value = s[s.selectedIndex].text;
    }

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 412
    Par défaut
    Merci "javatwister", cela fonctionne très très bien.


    Voici pour ceux qui le souhaite mon petit code bien complété par javatwister
    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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    <!DOCTYPE html>
    <html lang="fr">
     
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
     
      <script>
        function myFunction() {
        let elem = document.querySelectorAll(".drop-down");
     
        elem.forEach(element=>{
            element.addEventListener("click", e =>{
                console.log(e.target.innerHTML);
            });
        })
    }
    myFunction();
    </script>
     
    </head>
     
    <body>
     
        <select id="liste" onchange="run(this)">
            <option value="0">Select</option>
            <option value="8">huit</option>
            <option value="5">cinq</option>
            <option value="4">quatre</option>
       </select><br><br>
       TextBox1<br>
       <input type="text" id="champ1" placeholder="ici la valeur"><br>
       TextBox2<br>
       <input type="text" id="champ2"  placeholder="ici le texte"><br>
     
       <script>
        function run(s) {
        document.getElementById("champ1").value = s.value;
        document.getElementById("champ2").value = s[s.selectedIndex].text;
    }
    </script>
    </body>
     
    </html>

    Encore merciiiiiiiii

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 412
    Par défaut
    [QUOTE=javatwister;11938285]

    Re bonjour, je reviens vers toi pour te montrer ce que j'ai fait et ma dernière problématique.

    Voici le code de mon select:
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
         <select size="7" id="liste" onchange="run(this)">
    	      	<?php include('../config.php');
                            $select = "select * FROM cis ORDER BY centre ASC"; 
                            $result = $conn->query($select);
                            $total = mysqli_num_rows($result);
                            while($donnees = mysqli_fetch_array($result))
                            {
                            ?>
                <option value="<?php echo $donnees['abrev'] ?>"><?php echo $donnees['centre']; ?></option>
    			<?php } ?>
       </select

    ce code va chercher mes données dans ma base

    Voici mes inputs et la fin du script:
    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
    15
          <td><input type="text" name="cis" id="cis" placeholder="" onkeyup="this.value=this.value.toUpperCase()" required="required" />
     
     
          <td>
          <input type="text" name="abrev" id="abrev" placeholder="" onkeyup="this.value=this.value.toUpperCase()" required="required" />
          <br />
          <input type="text" name="id" id="id" required="required" /></td>
          </td>
     
          <script>
        function run(s) {
        document.getElementById("abrev").value = s.value;
        document.getElementById("cis").value = s[s.selectedIndex].text;
    }
    </script>

    Je tiens à préciser que tout fonctionne très très bien grâce à toi.

    Cependant quand je clique dans la liste sur 1 de mes enregistrements afin de remonter les infos dans les inputs (ce qui je le rappel fonctionne très bien), j'aimerai remonter dans un troisième input l'ID de l'enregistrement, ce qui me permettra d'effectuer des modifs sur cet enregistrement

    Pourriez vous m'aider

    encore merci merci beaucoup

  5. #5
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Il faudrait que tu stockes l'id dans l'option du select, sous forme d'attribut data:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <option value="<?php echo $donnees['abrev'] ?>" data-id="<?php echo $donnees['id'] ?>"><?php echo $donnees['centre']; ?></option>

    et pour copier l'id où tu veux, tu ajoutes une ligne à la fonction run:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function run(s) {
        document.getElementById("abrev").value = s.value;
        document.getElementById("cis").value = s[s.selectedIndex].text;
        document.getElementById("id").value = s[s.selectedIndex].dataset.id;
    }

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 412
    Par défaut
    Ca fonctionne super

    Je ne savais pas qu'il était possible de stocker une valeur de cette façon.

    Encore merci merci

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

Discussions similaires

  1. Récupération de données avec une liste déroulante
    Par zorbo dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 16/01/2009, 08h08
  2. Réponses: 4
    Dernier message: 24/10/2007, 10h43
  3. Réponses: 2
    Dernier message: 20/04/2007, 10h48
  4. Réponses: 4
    Dernier message: 30/08/2006, 12h17
  5. récupération des données via une liste déroulante
    Par rahan_dave dans le forum Access
    Réponses: 1
    Dernier message: 13/10/2005, 12h27

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