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 :

Recuperer les 4 choix d'une liste deroulante


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 16
    Par défaut Recuperer les 4 choix d'une liste deroulante
    Bonjour,

    Je dois construire un jeu pour récupérer les 4 réponses gagnantes à un jeu. Pour cela, j'ai construit deux tables :

    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
     
    CREATE TABLE IF NOT EXISTS `participants2` (
      `id_joueur` int(11) NOT NULL AUTO_INCREMENT,
      `email` varchar(30) CHARACTER SET utf8 NOT NULL,
      `password` text CHARACTER SET utf8 NOT NULL,
      `equipe` varchar(30) CHARACTER SET utf8 NOT NULL,
      PRIMARY KEY (`id_joueur`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
     
     
    CREATE TABLE IF NOT EXISTS `equipes_euro2016` (
      `id_equipe` int(11) NOT NULL AUTO_INCREMENT,
      `equipe` varchar(30) CHARACTER SET utf8 NOT NULL,
      `equipe_gagnante` int(10) NOT NULL,
      PRIMARY KEY (`id_equipe`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=25 ;
     
    --
    -- Contenu de la table `equipes_euro2016`
    --
     
    INSERT INTO `equipes_euro2016` (`id_equipe`, `equipe`, `equipe_gagnante`) VALUES
    (1, 'Albanie', 0),
    (2, 'Allemagne', 0),
    (3, 'Angleterre', 0),
    (4, 'Autriche', 0),
    (5, 'Belgique', 0),
    (6, 'Croatie', 0),
    (7, 'Espagne', 0),
    (8, 'France', 0),
    (9, 'Hongrie', 0),

    Les participants doivent cocher 4 pays pour jouer. J'ai construit deux listes déroulantes select, la première récupère le contenu du la table equipes_euro2016 et la deuxième select permet de mettre les pays choisis. Je n'arrive pas à récupérer le résultat du deuxième select pour l'envoyer dans la table participants2. Je suis bloqué à ce niveau. Comment puis-je récupérer au mieux les pays sélectionnés dans ma table participants ?
    Merci pour votre aide

    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
     
    <?php 
     
    if (isset($_POST['go']) && $_POST['go']=='validation') {
     
        $base = mysql_connect ('localhost', 'root', ''); 
        mysql_select_db('jeu', $base);
     
        if (!isset($_POST['email']) || !isset($_POST['password']) || !isset($_POST['equipe'])) { 
            $erreur = 'Les variables nécessaires au script ne sont pas définies.';
            $_POST['reponse1'] = '';
        }
        else {
            if (empty($_POST['email']) || empty($_POST['password']) || empty($_POST['equipe'])) { 
                $erreur = 'Au moins un des champs est vide.';
                $info = 'Veuillez renseigner tous les champs';	
            }
            else {
     
               $_POST['reponse1'] = 'selected="selected"'; 
               $sql = 'INSERT INTO participants2 VALUES("", "'.addslashes($_POST['email']).'", "'.addslashes($_POST['password']).'", "'.addslashes($_POST['equipe']).'")';             
               mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
               mysql_close();
     
               header('Location: index.php');
               exit();
            }
        }
    }
     
     
    // A supprimer une fois que tout est ok
    echo '<pre>';
    print_r ($_POST);
    echo '</pre>';
    echo $sql;
     
    ?>
     
     
     
    <!DOCTYPE html>
    <html>
    <head>
            <meta charset="UTF-8" />
            <!-- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">  -->
            <title>Jeu</title>
     
        </head>
     
    <body>
     
        <form id=paiement action="jeu.php" method="post">
     
        <fieldset>
            <legend>Vos coordonn&eacute;es</legend>               
            <ol>        
              <li>
                <label for=email>Email :</label>
                <input id=email name=email type=email placeholder="exemple@domaine.com" value="<?php echo $_POST["email"];?>" size="30" required autofocus>            
              </li>
     
              <li>
                <label for=password>Mot de passe :</label>
                <input id="password" name="password" type="password" value="<?php echo $_POST["password"];?>" size="15" required autofocus>
              </li>
              </ol>
            </fieldset>   
     
          <fieldset>      
            <legend>JEU</legend> 
     
          <table>
     
             <tr>
            <th valign="top"  style="width:210px" >
            <?php
     
              $sql = "SELECT equipe FROM equipes_euro2016 order by equipe ASC";
              $res = mysql_query($sql) or exit(mysql_error());
              ?>
     
            <select class="custom-dropdown__select custom-dropdown__select--white" align=top name="liste11" id="liste11" size="24" scrollbar="no" style="width:205px" onDblClick="basculer(this)">
            <optgroup label="- - - Choisissez vos quatres équipes - - -">
     
              <?php
              while($data=mysql_fetch_array($res))
              {
               $data["id_equipe"] ='';           
              ?>                
     
              <?php      
                echo '<option value="'.$data["id_equipe"].'">'.$data["equipe"].'</option>';
              }
              mysql_close();
          ?>
     
          </optgroup>                      
          </select>	
          </th>
          <th valign="top" style="width:90px;padding-top:35px;"><input type="button" style="width:80px" onClick="Deplacer2('liste11','liste12')" value="Ajouter >"><br />
              <input type="button" style="width:80px" onClick="Deplacer2('liste12','liste11')" value="&lt; Enlever">
          </th>
          <th valign="top" style="width:210px">
          Vos s&eacute;lections
          <select class="custom-dropdown__select custom-dropdown__select--white" name="reponse1" id="liste12" size="5" multiple style="width:205px" onclick="Obj=this;"" valign="top" value="equipe"<?php if(empty($_POST['equipe']) || $_POST['equipe']) ; ?>></select>
          </th>
          <th valign="top" style="width:90px;padding-top:35px;">                                              
    		      <input type="button" name="boutMonter" id="boutMonter" value="Monter" onclick="Deplacer(-1);" style="width:80px"/>
              <input type="button" name="boutDesc" id="boutDesc" value="Descendre" onclick="Deplacer(1);" style="width:80px"/>
          </th>
     
       </tr>
     
    </table>  
          </fieldset> 
     
          <fieldset>      
            <button id="gobutton" type=submit name="go" value="validation">Validation</button> 
          </fieldset>
        </form>
     
    </body>
    </html>

  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
    L'extension mysql est obsolète, utilise PDO. Dans tous les cas, addslashes() ne sert pas à sécuriser une requête, au moins utiliser mysql_real_escape_string() si tu continues avec la vieille extension.

    Ensuite je ne vois rien dans ton code pour construire le deuxième SELECT, même en dehors de la recupération des valeurs.

    Des articles sur les listes liées :
    http://javascript.developpez.com/act...-de-NoSmoking/

    http://siddh.developpez.com/articles/ajax/
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 16
    Par défaut
    J'avais enlevé le javascript pour construire les listes déroulantes :
    Code javascript : 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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
     
    <SCRIPT LANGUAGE="JavaScript">
    /**
    * Déplacement
    *
    * @param _idListe1
    *                Identifiant de la première liste.
    * @param _idListe2
    *                Identifiant de la deuxième liste.
    */
    function Deplacer2(_idListe1, _idListe2) {
      var l1 = document.getElementById(_idListe1);
      var l2 = document.getElementById(_idListe2);
      if (l1.options.selectedIndex>=0 ) {
           o=new Option(l1.options[l1.options.selectedIndex].text,l1.options[l1.options.selectedIndex].value);
           l2.options[l2.options.length]=o;
           l1.options[l1.options.selectedIndex]=null;
      }
      else{
       alert("Aucune activit&eacute; s&eacute;lectionn&eacute;e");
      }
     } 
     
    </SCRIPT>
     
     
     
     
    <script type="text/javascript">
    var Obj=null;
     
    function Deplacer(sens){
        if(Obj==null){return false;};
        var OptionSel= Obj.selectedIndex;
     
    switch (true){
        case ( Obj.length == -1 & sens==-1):
            alert('Pas d\'option a deplacer');
            break;
        case(OptionSel== -1):
            alert('Selectionnez une option a deplacer');
            break;
        case(Obj.length==0):
            alert('Il n\'y a qu\'une option \!');
            break;                                                             
        case(OptionSel== 0 && sens==-1):
            alert('La premiere option ne peut etre deplacee');
            break;
     
       case(OptionSel== Obj.length-1 && sens==1):
            alert('La derniere option ne peut etre deplacee');
             break;
     
        case(sens==-1):
            // Ce code est le code qui est appelé lorque l'on veut remonter une
    //option dans la liste
            // On mémorise dans des variables le texte et les valeurs des éléments
    // que l'on déplace.
            // Il suffit ensuite d'échanger les deux éléments
            var moveText1 = Obj[OptionSel-1].text;
            var moveText2 = Obj[OptionSel].text;
            var moveValue1 = Obj[OptionSel-1].value;
            var moveValue2 = Obj[OptionSel].value;
     
            // Echange des éléments
            Obj[OptionSel].text = moveText1;
            Obj[OptionSel].value = moveValue1;
            Obj[OptionSel-1].text = moveText2;
            Obj[OptionSel-1].value = moveValue2;
            Obj.selectedIndex = OptionSel-1;
            break;
     
       case(sens==1):
             // On procède de la même manière que pour faire monter une option.
             // La différence, c que dans ce cas, on prend en compte l'option suivante,
     // et non la précedente comme auparavant
             var moveText1 = Obj[OptionSel].text;
             var moveText2 = Obj[OptionSel+1].text;
             var moveValue1 = Obj[OptionSel].value;
             var moveValue2 = Obj[OptionSel+1].value;
             Obj[OptionSel].text = moveText2;
             Obj[OptionSel].value = moveValue2;
             Obj[OptionSel+1].text = moveText1;
             Obj[OptionSel+1].value = moveValue1;
             Obj.selectedIndex = OptionSel+1;
             break;
        }
    }
    </script>
    merci

  4. #4
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 16
    Par défaut un petit peu d'aide s'il vous plait
    Sinon est-ce que vous pouvez m'aider ? Mon problème n'est pas résolu...

    J'aimerai récupérer la valeur de mon select pour mettre la valeur en base de données... Merci !

    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
     
    <SCRIPT LANGUAGE="JavaScript">
      function getSelectValue(liste12)
      {
       var selectElmt = document.getElementById(liste12);
         /**
    	     selectElmt.options correspond au tableau des balises <option> du select
    	     selectElmt.selectedIndex correspond à l'index du tableau options qui est actuellement sélectionné
    	   */
       return selectElmt.options[selectElmt.selectedIndex].value;
      }
      </script>
     
     
    <fieldset>      
            <legend>JEU </legend> 
     
          <table>
     
             <tr>
            <th valign="top"  style="width:210px" >
            <?php
              mysql_connect ("localhost","root", "") or die (mysql_error());
              mysql_select_db("bdd")or die (mysql_error());
     
              $sql2 = "SELECT id_equipe,equipe FROM equipes order by equipe ASC";
              //echo $sql;
              $res = mysql_query($sql2) or exit(mysql_error());
              ?>
     
            <select class="custom-dropdown__select custom-dropdown__select--white" align=top name="equipe" id="liste11" size="24" scrollbar="no" style="width:205px" onDblClick="basculer(this)">
            <optgroup label="- - - Choisissez vos quatres équipes - - -">
     
              <?php
              while($data=mysql_fetch_array($res))
              {
     
              ?>                
     
              <?php
     
                //echo '<option value="'.$data["id_equipe"].'" selected=\"selected\">'.$data["equipe"].'</option>';
                echo( "<option value=".$data["id_equipe"].">".$data["equipe"]."</option>" );
              }
     
              // on ferme la connexion à mysql
              mysql_close();
          ?>
     
          </optgroup>                      
          </select>	
          </th>
          <th valign="top" style="width:90px;padding-top:35px;"><input type="button" style="width:80px" onClick="Deplacer2('liste11','liste12')" value="Ajouter >"><br />
              <input type="button" style="width:80px" onClick="Deplacer2('liste12','liste11')" value="&lt; Enlever">
          </th>
          <th valign="top" style="width:210px">
          Vos s&eacute;lections
          <select class="custom-dropdown__select custom-dropdown__select--white" name="equipe" id="liste12" size="5" multiple style="width:205px" onclick="Obj=this;"" valign="top" value="<?php if (isset($_POST['equipe'])){echo $_POST['equipe'];} ?>">
     
     
          </select>
          </th>
          <th valign="top" style="width:90px;padding-top:35px;">                                              
    		      <input type="button" name="boutMonter" id="boutMonter" value="Monter" onclick="Deplacer(-1);" style="width:80px"/>
              <input type="button" name="boutDesc" id="boutDesc" value="Descendre" onclick="Deplacer(1);" style="width:80px"/>
          </th>
     
       </tr>
     
    </table>  
          </fieldset> 
     
          <fieldset>      
            <button id="gobutton" type=submit name="go" value="validation">Validation</button> 
          </fieldset>
     
     
     
        </form>
     
    </body>
    </html>
     
     
    <?php
     
    if (isset($_POST['go']) && $_POST['go']=='validation') {
     
        //On récupère les valeurs entrées par l'utilisateur :
        $email=$_POST['email'];
        $password=$_POST['password'];
        $equipe=$_POST['equipe'];
     
     
        $base = mysql_connect ('localhost', 'root', ''); 
        mysql_select_db('interdb', $base);
     
     
        //Insertion dans la table note
        $sql4 = "INSERT INTO participants2 VALUES ('','".$email."','".$password."','".$equipe."' )";
        mysql_query ($sql4) or die ('Erreur d\'insertion sur la table participants !'.$sql4.'<br />'.mysql_error());
     
     
        //On ferme la connexion
        mysql_close();
     
    }
     
    ?>

  5. #5
    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 manque le "name" pour ton <select>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 16
    Par défaut
    Oui j'ai mis name=liste2 mais je ne récupère rien, j'ai rajouté le getselectValue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $liste12 = getSelectValue('liste12');
    echo("<b>".$liste12."</b>" ); //test d'affichage
    Il faut que j'arrive à récupérer les choix dans ma liste liste12 en récupérant ma variable javascript getSelectValue('liste12') et la passer en php pour l'insertion dans la table mais je ne sais pas comment faire...
    Merci pour votre aide


    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
    53
    54
     
    <th valign="top" ><input type="button" onClick="Deplacer2('liste11','liste12')" value="Ajouter >"><br />
              <input type="button" onClick="Deplacer2('liste12','liste11')" value="&lt; Enlever">
          </th>
          <th>
          Vos s&eacute;lections
          <select name="liste12" id="liste12" size="5" multiple onclick="Obj=this;"" valign="top" value="<?php if (isset($_POST['liste12'])){echo $_POST['liste12'];} ?>">
     
     
          </select>
          </th>
          <th valign="top" style="width:90px;padding-top:35px;">                                              
    		      <input type="button" name="boutMonter" id="boutMonter" value="Monter" onclick="Deplacer(-1);" style="width:80px"/>
              <input type="button" name="boutDesc" id="boutDesc" value="Descendre" onclick="Deplacer(1);" style="width:80px"/>
          </th>
     
       </tr>
     
    </table>  
          </fieldset> 
     
          <fieldset>      
            <button id="gobutton" type=submit name="go" value="validation">Validation</button> 
          </fieldset>
     
     
        </form>
     
    </body>
    </html>
     
     
    <?php
     
    if (isset($_POST['go']) && $_POST['go']=='validation') {
     
        $email=$_POST['email'];
        $password=$_POST['password'];
     
        $liste12 = getSelectValue('liste12');
        echo("<b>".$liste12."</b>" ); //test d'affichage
     
        $base = mysql_connect ('localhost', 'root', ''); 
        mysql_select_db('bdd', $base);
     
        $sql4 = "INSERT INTO participants2 VALUES ('','".$email."','".$password."','".$liste12."' )";
        mysql_query ($sql4) or die ('Erreur d\'insertion sur la table participants !'.$sql4.'<br />'.mysql_error());
     
     
        mysql_close();
     
    }
     
    ?>

Discussions similaires

  1. [AJAX] renseigner des input selon choix dans une liste deroulante
    Par abconcept dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 28/02/2009, 15h06
  2. [A-00] Choix depuis une liste deroulante modifiable
    Par sangdragon dans le forum IHM
    Réponses: 2
    Dernier message: 03/02/2009, 10h30
  3. [MySQL] conserver le choix dans une liste deroulante
    Par tkhchkhiche dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/04/2008, 13h44
  4. Réponses: 3
    Dernier message: 10/10/2007, 12h43
  5. recuperer le nombre element d'une liste deroulante
    Par fallered dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/10/2005, 14h11

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