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

PHP & Base de données Discussion :

Formulaire- Affichage valeur sélectionnée [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 365
    Points : 192
    Points
    192
    Par défaut Formulaire- Affichage valeur sélectionnée
    Bonjour,

    J'ai le formulaire et code suivant :

    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
     
     
    <form>
     
    <fieldset style="width: 350px">
     
    <legend><strong>Editeur</strong></legend>
     
    <label>Choisir :</label>
     
    <select name='id_editeur' id='auteur' onchange="this.form.submit();">
     
    <option value='-1'>Aucun</option>
     
    <?php
     
    $db = mysql_connect("localhost","root", "")  or die ('erreur de connexion');
    mysql_select_db('***',$db);
    mysql_set_charset( 'utf8' );
     
    $res = mysql_query("SELECT DISTINCT ED.NOM_EDITEUR AS editeur,ED.ID_EDITEUR AS id_editeur
    
    FROM LIVRE L
    
    INNER JOIN EDITEUR ED		
    ON ED.ID_EDITEUR = L.ID_EDITEUR
    ORDER BY  ED.NOM_EDITEUR");
     
     
    while($row = mysql_fetch_assoc($res)){
    echo "<option value='".$row["id_editeur"].">".$row["editeur"]."</option>";
     
    				     }?>
     
    </select>			
     
    </fieldset>
    </form>
     
     
    <?php		
     
    if( $row['id_editeur'] != null) { 
     
      $select_livre  = " SELECT L.TITRE AS titre (...) 
      WHERE ED.ID_EDITEUR=".$row['id_editeur'];
    ?>
    Après après avoir soumis le formulaire, je souhaiterais conserver l'affichage du nom de l'éditeur sélectionné ($row["editeur"]). Actuellement, l'affichage revient à "aucun". Pouvez-vous m'aider à obtenir le résultat souhaité ? Merci.

  2. #2
    Membre actif
    Inscrit en
    Mai 2010
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 177
    Points : 210
    Points
    210
    Par défaut
    Je ne sais pas avec quelle méthode tu soumets ton formulaire (POST ou GET), mais je m'y prendrais de la façon suivante pour affecter la bonne valeur à ta zone SELECT... ceci à supposer que le submit te ramène à la même page et pas sur une autre page 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
    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
    53
    54
    55
    56
    57
    58
    59
    60
     
    <form name="monFormulaire" action="pageActuelle.php" method="POST"> 
     
    <fieldset style="width: 350px">
     
    <legend><strong>Editeur</strong></legend>
     
    <label>Choisir :</label>
     
    <select name='id_editeur' id='auteur' onchange="this.monFormulaire.submit();">
     
    <option value='-1'>Aucun</option>
     
    <?php
     
    $db = mysql_connect("localhost","root", "")  or die ('erreur de connexion');
    mysql_select_db('***',$db);
    mysql_set_charset( 'utf8' );
     
    $res = mysql_query("SELECT DISTINCT ED.NOM_EDITEUR AS editeur,ED.ID_EDITEUR AS id_editeur
     
    FROM LIVRE L
     
    INNER JOIN EDITEUR ED		
    ON ED.ID_EDITEUR = L.ID_EDITEUR
    ORDER BY  ED.NOM_EDITEUR");
     
     
    while($row = mysql_fetch_assoc($res)){
    if (isset($_POST['id_editeur']))
    {
       if($_POST['id_editeur'] == $row['id_editeur'])
       {
             echo "<option value='".$row["id_editeur"]."' selected>".$row["editeur"]."</option>";
       }
       else
       {
           echo "<option value='".$row["id_editeur"]."'>".$row["editeur"]."</option>";
       }
    }
    else
    {
        echo "<option value='".$row["id_editeur"]."'>".$row["editeur"]."</option>";
    }
     
    				     }?>
     
    </select>			
     
    </fieldset>
    </form>
     
     
    <?php		
     
    if( $row['id_editeur'] != null) { 
     
      $select_livre  = " SELECT L.TITRE AS titre (...) 
      WHERE ED.ID_EDITEUR=".$row['id_editeur'];
    ?>

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 365
    Points : 192
    Points
    192
    Par défaut
    Merci pour ton code. Cela fonctionne mais bizarrement mon code javascript onchange="this.form.submit();" ne se déclenche plus. Je suis obligé de soumettre mon formulaire en créant un bouton submit et en cliquant dessus. Une idée sur ce dysfonctionnement ? Merci encore.

  4. #4
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Bonjour,

    teste ceci :

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.forms['leNomDeTonFormulaire'].submit();

  5. #5
    Membre actif
    Inscrit en
    Mai 2010
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 177
    Points : 210
    Points
    210
    Par défaut
    Madfrix a effectivement raison. Et le problème vient de la ligne suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form name="monFormulaire" action="pageActuelle.php" method="POST">
    Avec cette ligne, j'ai donné un nom au formulaire en question (monFormulaire), tu peux évidemment l'appeler comme tu veux, mais maintenant pour y accéder il faut tenir compte de ce nouveau paramètre, ce que j'ai mal fait dans mon code précédent. Dans le onchange, il faudrait plutôt mettre ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select name='id_editeur' id='auteur' onchange="document.monFormulaire.submit();">
    Ou bien, tu peux utiliser la méthode de Madfrix qui revient essentiellement au même:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select name='id_editeur' id='auteur' onchange="document.forms['monFormulaire'].submit();">
    Donc voilà, bon codage .

    Osu

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 365
    Points : 192
    Points
    192
    Par défaut
    Merci beaucoup à tous les 2 et particulièrement à osuwariboy pour ses explications aussi claires qu'instructives.

  7. #7
    Membre actif
    Inscrit en
    Mai 2010
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 177
    Points : 210
    Points
    210
    Par défaut
    Comme je dis toujours, la réponse n'est jamais aussi importante que la compréhension qui en découle. Donc, si j'ai pu t'aider à améliorer ta compréhension de PHP et de Javascript et bien c'est tant mieux .

    Ravi d'avoir pu t'être utile .

    Osu

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/06/2007, 11h10
  2. Réponses: 4
    Dernier message: 23/04/2007, 11h02
  3. Réponses: 1
    Dernier message: 02/04/2007, 15h49
  4. [Formulaire]Affichage de la valeur du champ
    Par Harmony dans le forum IHM
    Réponses: 2
    Dernier message: 24/03/2007, 17h50
  5. Affichage sous-formulaire si valeur non existante
    Par p'tite Sandrine dans le forum Access
    Réponses: 6
    Dernier message: 22/12/2006, 16h29

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