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 :

Fonctionnement liste deroulante [MySQL]


Sujet :

PHP & Base de données

  1. #1
    GYK
    GYK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 406
    Par défaut Fonctionnement liste deroulante
    Bonjour,
    Je veux faire une liste deroulante basée sur une base de donnée MYSQL et recuperer la valeur selectionnée.
    Je me suis inspiré d'un script posté sur le web et j'ai fais ca:
    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
     
    echo '<select size=1 name=liste>'."\n"; 
     
    		   	mysql_select_db($database_connection, $connection);
    			$SQLsel = "SELECT Identite, Numero FROM fichier  ORDER BY trim(Nompat) ASC, trim(Prenom) ASC" ;
    			$ressel = mysql_query($SQLsel) or die('Erreur SQLsel : '.mysql_error());
     
    			while ($resultat = mysql_fetch_row($ressel))
    			{
     
        		echo '<option value="'.$resultat[1].'">'.$resultat[0]; 
        		echo '</option>'."\n"; 
    			$numelsel = ' selected="selected"';
     
     			} 
     
      			echo '</select>'."\n";
    La liste déroulante marche bien, mais pas la sélection. Mais a vrai dire je ne comprend pas ce que je fais, et je n'arrive pas à récuperer la valeur d'un champ appellé Numero dans une variable appellé numelsel
    Si quelqu'un pouvait m'expliquer ce que fait ce code et comment récuperer ma valeur.
    Comprendre ce serait génial!
    Merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    La valeur sélectionnée dans un <select> n'est récupérable par PHP qu'a partir du moment ou tu soumets ton formulaire.

    Le script PHP est executé par le serveur, il est donc fini avant que tu choisisses ta valeur.
    Tu ne peux pas écrire un <select> et deux lignes en dessous recuperer la valeur qui sera choisi par l'utilisateur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    GYK
    GYK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 406
    Par défaut
    Bonjour Sabotage,

    Mon script est bien a l'interieur d'un formulaire!

    Dans mon cas comment ferait tu ?

    Merci

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ta valeur selectionnée est alors recuperé dans la page de destination du formulaire dans $_POST['liste'] (si ton formulaire utilise la methode POST)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    GYK
    GYK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 406
    Par défaut
    Un truc comme ça pourrait marcher ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $selection = $_POST['liste'];
    $monchamp = $selection['Numero']

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    $_POST['liste'] contient uniquement la "value" de ton <select>, donc dans ton cas, le "Numero" de ta base de donnée.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    GYK
    GYK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 406
    Par défaut
    Je ne comprend pas, je m'explique.

    Le champ Numero n'est défini que dans le :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT Identite, Numero FROM fichier ....
    avec également 'Identite' defini.

    Comment 'liste' prend t'il la valeur de 'Numero'

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<option value="'.$resultat[1].'">'.$resultat[0];
    le <select> renvoit la "value" de l'<option> selectionné
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    GYK
    GYK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 406
    Par défaut
    Ca marche pas!
    ma variable est vide.

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Est-ce que ton formulaire utilise bien la method="post"
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    GYK
    GYK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 406
    Par défaut
    Oui,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <FORM class="Cadre" Method="POST" size="50%" enctype="multipart/form-data"  action="../choix.php">

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Est-ce qu'on pourrait avoir le code complet du formulaire et de la page de reception ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    GYK
    GYK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 406
    Par défaut
    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
     
    <FORM class="Cadre" Method="POST" size="50%" enctype="multipart/form-data"  action="../choix.php">
     
    <p >Quelle est la position de l eleve dans cette classe ?</p>
     
                            <p>
    						 <input name="posmaj" type="text" id="posmaj"  size="2" maxlength="2">
    						</p>
                            <p >Je le recherche dans la liste (sauf effacement)!</p>
                            <p >
     
     
               <?php
     
    		    echo '<select size=1 name=liste>'."\n"; 
     
    		   	mysql_select_db($database_connection, $connection);
    			$SQLsel = "SELECT Identite, Numero FROM fichier  ORDER BY trim(Nompat) ASC, trim(Prenom) ASC" ;
    			$ressel = mysql_query($SQLsel) or die('Erreur SQLsel : '.mysql_error());
     
    			while ($resultat = mysql_fetch_row($ressel))
    			{
     
        		echo '<option value="'.$resultat[1].'">'.$resultat[0]; 
        		echo '</option>'."\n"; 
                    $numelsel = ' selected="selected"';
     
     			} 
     
      			echo '</select>'."\n";
     
    ?>
     
     
                            </p>
     
                            <p>
                            <input class="Bouton" type="submit" name="Absent" id="Absent" value="Il ne figure pas dans la liste" />
                            <input class="Bouton" type="submit" name="Selection" id="Selection" value="Je l'ai selectionné" /><br />
                            <input class="Bouton" type="submit" name="Suppression" id="Suppression" value="Je l'efface du tableau" />
                            </p>
                            <input type="hidden"  name="clamaj" id="clamaj" value="<?php echo $clamaj; ?>" />                        
                            <input type="hidden"  name="Identite" id="Identite" value="<?php echo $identite; ?>" />
                            <input type="hidden"  name="numelsel" id="numelsel" value="<?php echo $numelsel; ?>" />
    </FORM>
    Le débur de la page de recetion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php 
    GLOBAL $noupre;
    GLOBAL $nounom;
    GlOBAL $clamaj;
    GLOBAL $posmaj;
    GLOBAL $identite;
    GLOBAL $numelsel;
    echo $clamaj . " clamaj " . $posmaj . " posmaj " . $numelsel . " numelsel " . $Identite . " identite " . '<br/>';
    .
    .
    .

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il est ou notre $_POST dans tout ca ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  15. #15
    GYK
    GYK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 406
    Par défaut
    Il est dans le source contenant le formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php 
    GLOBAL $posmaj;
    $numelsel = $_POST['liste'];
    GLOBAL $numelsel;
    GLOBAL $identite;
    ?>

  16. #16
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    fais un print_r($_POST); dans ton fichier de reception pour voir.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #17
    GYK
    GYK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 406
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Array ( [posmaj] => 33 [liste] => 2045 [Selection] => Je l\'ai selectionné [clamaj] => 56-57 10 G [Identite] => [numelsel] => ) 56-57 10 G clamaj 33 posmaj numelsel identite
    Apparement il apparait bien!

  18. #18
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    $_POST['liste'] contient bien ta valeur.
    Peux-tu nous dire a quel endroit tu rencontres un probleme ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  19. #19
    GYK
    GYK est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 406
    Par défaut
    OK ça y est c'est bon.
    Merci pour tout
    Bonne fin de journée!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/11/2014, 19h28
  2. Parcourir une liste deroulante
    Par brandon dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 17/02/2005, 19h03
  3. [JSP]Problème liste deroulante dynamique
    Par besco dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 09/09/2004, 17h58
  4. liste deroulante avec plusieurs champs
    Par JulienT dans le forum Struts 1
    Réponses: 4
    Dernier message: 20/04/2004, 17h17
  5. [langage] liste déroulante
    Par Jeh dans le forum Langage
    Réponses: 6
    Dernier message: 16/09/2003, 10h14

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