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 :

liste déroulante et champ de text liés


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 26
    Par défaut liste déroulante et champ de text liés
    bonjour . cela fait plusieurs jours que je traine sur les différents forums pour me faire aider sur mon problème.
    je voudrais que lorsqu'on sélectionne un nom de la liste déroulante l'email correspondant à ce nom s'affice dans le champ text afin que je puisse poster les 2.
    exemple quand je sélection Dubois dans le liste déroulante le champ text se rempli avec Dubois@yahoo.fr

    le code que je possède affiche que dans le champ text le nom nom sélectionné dans la liste déroulante or je veux que le champ se rempli par le mail de cette personne .

    voici e code
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <?php
    include("connect.php");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>Document sans titre</title>
        <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function () {
                $('#annee').change(function () {
                    $('#fieldsemail').val($('#annee option:selected').text());
                });
            });
        </script>
        <style type="text/css">
            #selectedMail {
                margin: 5px 25px;
                border: thin solid #9acd32;
                padding: 5px;
            }
        </style>
    </head>
     
    <body>
    <form method="post" action="reception.php">
        <p>
     
            <select name="annee" id="annee">
                <option value="Choisissez">Choisissez</option>
                <?php
                $req = mysql_query("SELECT id_dest,nom_dest FROM destinateurs ORDER BY nom_dest DESC");
                while ($d = mysql_fetch_assoc($req)) {
                    echo '<option value="' . $d['id_dest'] . '">' . $d['nom_dest'] . '</option>'.PHP_EOL;
                    }
                ?>
            </select>
        </p>
        <div id="paragrapheSupplementaire">
            <input type="text" name="fieldsemail" id="fieldsemail" value=""/>
        </div>
        <p>
            <input type="submit" value="-- OK --"/>
        </p>
    </form>
     
    </body>
    </html>

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    elle sont ou les adresses mail ? dans un table ? ou tu les as déjà rapatriées coté client lors du chargement de la page ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre averti
    Inscrit en
    Août 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 26
    Par défaut
    oui les adresse mails sont dans la meme table destinateurs
    voici la structure de la table



    Code sql : 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
    --
    -- Base de données: `------`
    --
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `destinateurs`
    --
     
    CREATE TABLE IF NOT EXISTS `destinateurs` (
      `id_dest` int(11) NOT NULL AUTO_INCREMENT,
      `nom_dest` varchar(150) NOT NULL,
      `dest_Direct` varchar(80) NOT NULL,
      `dest_Service` varchar(80) NOT NULL,
      `dest_Contact` varchar(15) NOT NULL,
      `dest_Mail` varchar(30) NOT NULL,
      PRIMARY KEY (`id_dest`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=15 ;
     
    --
    -- Contenu de la table `destinateurs`
    --
     
    INSERT INTO `destinateurs` (`id_dest`, `nom_dest`, `dest_Direct`, `dest_Service`, `dest_Contact`, `dest_Mail`) VALUES
    (9, 'FOFANA KARIM', 'DIRECTION DE LA PLANIFICATION', 'STATISTIQUE', '45621236', 'kamin02@yahoo.fr'),
    (10, 'YAO ANDEA', 'DIRECTION DE LA PLANIFICATION', 'STATISTIQUE', '01458575', 'andea@gmail.com'),
    (11, 'DIGBEU ARISTIDE', 'DIRECTION DE LA PLANIFICATION', 'STATISTIQUE', '45655878', 'aro@hotmail.com'),
    (12, 'SANOGO ABDRAMANE', 'DIRECTION DE LA PLANIFICATION', 'STATISTIQUE', '01458575', 'kamin02@yahoo.fr'),
    (13, 'YEO AFFOUET', 'DIRECTION DE LA PLANIFICATION', 'STATISTIQUE', '25789563', 'kamin02@yahoo.fr'),
    (14, 'msi79', 'DIRECTION DE LA PLANIFICATION', 'STATISTIQUE', '01458575', 'kamin02@yahoo.fr');

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Heu ...
    c'etait juste pour savoir ou elles se situaient ...

    vu qu'elles sont dans une table coté serveur tu peux sur le onchange de ton select faire une requete ajax pour recupérer le mail en fonction de l'id ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par défaut
    Bonjour,

    Si tu as juste besoin du nom et de l'email, ne récupère pas l'identifiant unique et fait :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <select name="annee" id="annee" onchange="afficheMail()">
    <option value="Choisissez">Choisissez</option>
    <?php
    $req = mysql_query("SELECT dest_Mail,nom_dest FROM destinateurs ORDER BY nom_dest DESC");
                while ($d = mysql_fetch_assoc($req)) {
                    echo '<option value="' . $d['dest_Mail'] . '">' . $d['nom_dest'] . '</option>'.PHP_EOL;
                    }
                ?>
            </select>

    puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var afficheMail = function () {
        $('#fieldsemail').val($("#annee").val());
    };
    Bonne journée

  6. #6
    Membre averti
    Inscrit en
    Août 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 26
    Par défaut
    merci beaucoup ça marche je veux ajouter un deuxième champ texte
    comment je fais
    ma requète deviens :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = mysql_query("SELECT dest_Mail,nom_dest,dest_Contact FROM destinateurs ORDER BY nom_dest DESC");
    j'ai modifié le code mais ça affiche le mail dans les deux champs or le deuxieme champ devrait contenir le contact .
    voici le code que j'ai tenté :
    Code php : 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
    48
    49
    50
    51
    52
    <?php
    include("connect.php");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>Document sans titre</title>
        <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
        <script type="text/javascript">
    var afficheMail = function () {
        $('#fieldsemail').val($("#annee").val());
    	$('#fieldscontact').val($("#annee").val());
    };
        </script>
        <style type="text/css">
            #selectedMail {
                margin: 5px 25px;
                border: thin solid #9acd32;
                padding: 5px;
            }
        </style>
    </head>
     
    <body>
    <form method="post" action="reception.php">
        <p>
     
    <select name="annee" id="annee" onchange="afficheMail()">
    <option value="Choisissez">Choisissez</option>
    <?php
    $req = mysql_query("SELECT dest_Mail,nom_dest,dest_Contact FROM destinateurs ORDER BY nom_dest DESC");
                while ($d = mysql_fetch_assoc($req)) {
                    echo '<option value="' . $d['dest_Mail'] . '">' . $d['nom_dest'] . '</option>'.PHP_EOL;
                    }
                ?>
            </select>
        </p>
        <div id="paragrapheSupplementaire">
            <input type="text" name="fieldsemail" id="fieldsemail" value=""/>
        </div>
            <div id="paragrapheSupplementaire2">
            <input type="text" name="fieldscontact" id="fieldscontact" value=""/>
        </div>
        <p>
            <input type="submit" value="-- OK --"/>
        </p>
    </form>
     
    </body>
    </html>

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    donc rien à voir avec javascript ni jquery ...

    merci de poser les questions dans les forums appropriés => php mysql ..
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par défaut
    Bonjour,

    Heu.. je suis pas tout à fait d'accord avec toi spacefrog.

    Son problème semble bien relever du javascript et il devrait pour ce qu'il souhaite faire une requête ajax (ou $.post) pour récuperer tous les éléments dont il a besoin avant de construire son select.

    En effet dans son code ceci ne peut pas marcher, dumoins pas pour avoir des résultats différents dans les 2 champs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        <script type="text/javascript">
    var afficheMail = function () {
        $('#fieldsemail').val($("#annee").val());
    	$('#fieldscontact').val($("#annee").val());
    };
        </script>
    Donc msi79, prend connaissance de la doc jQuery pour interroger un fichier via une requête, soit $.ajax, $.post, $.get et récuperer la réponse du fichier.

    En l'occurence ce fichier contiendra ta requete SQL.

    Pour transmettre des données "saines" penche toi aussi du coté d'une réponse sous forme de chaine JSON encoded.

    Reviens nous voir si tu as des questions

    Bonne journée

    @spacefrog : je pense que faire une requête à chaque fois que le select change est un peu couteux, il vaut mieux à mon avis construire un Objet javascript contenant le résultat de la requête ajax et l'exploiter lors des événements onchange du select pour remplir les champs.
    d'accord ?

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Cela dépend du nombre de users ...
    si il a en totu et pour tout un max d'un centaines de mail il suffit de tout charger au moment du load dans un array ou un json et aller chercher dans le json sur le onchange, evitant ainsi les ajax ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par défaut
    Tu as raison dans l'absolu c'est plus simple.

    Juste un petit bémol pour moi, je trouve plus facile de récupérer un JSON dans le retour d'un $.post que de transmettre un array php à javascript.

    Mais je suis pas sûr de moi sur ce coup

    Il peut aussi générer des input hidden dans un "while" et récupérer leur valeur en jQuery...

    Enfin, plein de solutions, mais faut se creuser un peu la tête

Discussions similaires

  1. Formulaire liste déroulante et champ texte
    Par Pwouaro dans le forum IHM
    Réponses: 6
    Dernier message: 05/02/2008, 09h02
  2. [AJAX] Lier une liste déroulant à un champ texte
    Par arnaudperfect dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 13/04/2007, 14h50
  3. Zone de liste déroulante et zone de texte
    Par lapaz dans le forum IHM
    Réponses: 3
    Dernier message: 21/02/2007, 12h49
  4. Sélection liste déroulante puis affichage de text box
    Par dolu007 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 11/11/2006, 00h03
  5. lier une liste déroulante et un simple texte HTML
    Par gregolak dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/07/2006, 15h42

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