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 :

recuperer une valeur lors d'une selection d'un menu deroulant


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 90
    Points : 49
    Points
    49
    Par défaut recuperer une valeur lors d'une selection d'un menu deroulant
    Bonjour je vous explique mon problème j'ai fais une base de donnée avec des menu déroulants.
    Un des menu concatène 3 champs et j'aimerais que lorsque l'utilisateur fasse un choix sur cette liste on récupère une variable de la liste déroulante afin de remplir un champs input(id_loc) du même formulaire et ce de maniere dynamique. J'ai regardé les cours javascript mais je n'y arrive pas.

    fichier formulaire.php
    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
    <html>
    <head>
    <title> Formulaire ajout</title>
    <link rel="stylesheet" type="text/css" href="gris.css">
    <script language="JavaScript">
    function test(id) {
    valeur_select=document.getElementById('id').value;}
    document.getElementById('id_location').value="id";
    }
    </script> 
    </head>
    <body>
    <p>
      <?php 
     
     
    include('menu.php'); 
    include('conf.php');
    include('func_list.php');
    ?>
    <form method="post" action="ajout_loc.php">
     
     
    <p>
    <font class="label" size="2" face="Arial">Locataire:</font><br>
    <select onChange="test()" class="controle" name="locataire">
    <option value="<?php list_concat_loc($server,$login,$pass,$bdd,$appart); ?>"
    <input type="text" name="id_loc" size="5" /><br />
    </select>
    </p>
    pouvez vous m'aidez je suis désespéré merci

  2. #2
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Bonjour,
    Pour récupèrer la "value" d'un "select" tu as la solution ici :
    Si tu utilises "getElementById" ton select doit avoir une "ID" par exemple 'locataire' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select onChange="test()" class="controle" name="locataire" id="locataire">
    Ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var valeur_select = document.getElementById('locataire').options[document.getElementById('locataire').selectedIndex].value;
    Ensuite tu indiques pour le champ de "type"text" une "ID" qui ne correspond pas 'id_location' au lieu de id_loc'.
    Il faut donner la valeur de ton select à ce champ donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('id_loc').value = valeur_select;
    De même dans ta fonction tu n'as pas besoin d'indiquer de paramètre surtout que n'en indique aucun lorsque tu fais appelles à cette dernière.
    Il faut bien également fermer les balises 'option' ...

    EDIT : il faut également supprimer cette accolade :
    .value;}

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 90
    Points : 49
    Points
    49
    Par défaut
    j'ai effectué toutes les modif mais cela ne fonctionne pas

  4. #4
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    As tu un message d'erreur?
    Peux tu montrer ton nouveau code ...

  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
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    D'abord, ton input ne doit pas se trouver à l'intérieur du select, ensuite, le onchange du select se déclenche lorsque tu changes le option sélectionné, ce qui ne risque pas d'arriver avec une seule option !

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 90
    Points : 49
    Points
    49
    Par défaut
    aucune erreur il ne se passe rien lorsque je selectionne un item
    ton input ne doit pas se trouver à l'intérieur du select
    merci j'avais pas vu
    le onchange du select se déclenche lorsque tu changes le option sélectionné, ce qui ne risque pas d'arriver avec une seule option !
    oui sauf que j'effectue une requete SQL qui remplie ma liste donc c'est bon
    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
     
    <html>
    <head>
    <title> Formulaire ajout</title>
    <link rel="stylesheet" type="text/css" href="gris.css">
    <script language="JavaScript">
    function test() {
    var valeur_select = document.getElementId('loc').options[document.getElementById('loc').selectedIndex].value;
    document.getElementById('id_location').value = valeur_select;
    }
    </script> 
    </head>
    <body>
    <p>
      <?php 
     
    include('menu.php'); 
    include('conf.php');
    include('func_list.php');
    ?>
    <form method="post" action="ajout_locations.php">
    <p>
    <font class="label" size="2" face="Arial">Locataire:</font><br>
    <select onChange="test()" class="controle" Id="loc" name="locataire">
    <option value="<?php list_concat_loc($server,$login,$pass,$bdd,$appart); ?>"
    </option>
    </select>
    </p>
    <input type="text" name="id_location" size="10" /><br />

  7. #7
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Ce n'est pas "getElementId" mais "getElementById" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var valeur_select = document.getElementById('loc').options[document.getElementById('loc').selectedIndex].value;
    De plus ta balise "option" n'est pas fermée, il manque un ">" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value="<?php list_concat_loc($server,$login,$pass,$bdd,$appart); ?>">

  8. #8
    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
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    oui sauf que j'effectue une requete SQL qui remplie ma liste
    Euh... moi je vois juste que tu remplis le value de ton select !
    Pourrais-tu montrer plutôt le code HTML généré ?

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 90
    Points : 49
    Points
    49
    Par défaut
    j'ai trouvé mon erreur, le champ input ne contenais pas d'id.
    Est il possible de ne selectionner qu'une partie de la ligne selectionnée (la ligne etant une concatenation de 3 champs)
    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
    function list_concat_appart($server,$login,$pass,$bdd)
    {
    mysql_connect($server, $login, $pass) or die("<p>Acces refusé:  Login ou mot de passe incorrect");
    mysql_select_db($bdd)or die("Impossible de se connecter à la base de données");
     
    $req = mysql_query('SELECT * FROM `app`') or die ("erreur l'hors de la requete list.php");
    $fab="";
     
     if($fab==""){
     echo('<option value="'.'">'.''.'</option>');
     }
     else
    {
     echo('<option value="'.'">'.'</option>');
    }
         while ($ligne1=mysql_fetch_object($req)){
     
     
     echo('<option>'.$ligne1->nom.', '.$ligne1->prenom.' '.$ligne1->ville.'
     </option>'); 
     
     }
    mysql_close();
    }

  10. #10
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Tu ne devrais pas avoir ceci dans ton formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <select onChange="test()" class="controle" Id="loc" name="locataire">
    <?php list_concat_loc($server,$login,$pass,$bdd,$appart); ?>
    </select>
    Comme on te l'indique ici
    De plus dans ton "while" tu n'indiques pas de "value" à tes options ?

    EDIT :
    Si tu ne veux par exemple ne récupèrer que le nom tu ajoutes ta varibiable dans la "value" de ton option :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while ($ligne1=mysql_fetch_object($req)){
     
    //la concatenation des champs se fait ici
    echo('<option value="'.$ligne1->nom_loc1.'">'.$ligne1->nom_loc1. ' '.$ligne1->prenom_loc1. ', '.$ligne1->datenaiss_loc1. '</option>'); }

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 90
    Points : 49
    Points
    49
    Par défaut
    ah super c'est exactement ca que je voulais. Merci beaucoup, je pense que j'avais le nez un peu trop dans le code. Encore merci.

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 05/02/2015, 14h47
  2. Réponses: 8
    Dernier message: 05/04/2011, 08h06
  3. Réponses: 82
    Dernier message: 05/02/2011, 14h34
  4. tester une valeur et affecter une valeur
    Par Elise0251 dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 29/07/2009, 16h31
  5. Réponses: 10
    Dernier message: 30/11/2006, 23h06

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