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

Langage PHP Discussion :

Récupérer données formulaire et les insérer dans une table MySQL


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 207
    Points : 114
    Points
    114
    Par défaut Récupérer données formulaire et les insérer dans une table MySQL
    Bonjour,

    je sais qu'il y a déjà eu des posts sur la récupération des données d'un formulaire, et j'ai testé les solutions, avec succès, mais quand je demande à ce que l'insertion se fasse dans une requête sql avec un bouton radio, ça ne fonctionne pas.

    Voici mon fichier d'origine, permettant d'ajouter des questions à un qcm:
    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    <?php
    session_start();
     
    //----Verification login
    if(!isset($_SESSION['code']))
    {
    header("Location:loginProf.php");
    }
    ?>
     
    <?php
    include("configProf.php");
    if(isset($_POST['bouton']))
    {
       $requete="INSERT INTO qcm SET question='".$_POST['question']."',  rep1='".$_POST['rep1']."', rep2='".$_POST['rep2']."',  rep3='".$_POST['rep3']."',rep_juste='".$_POST['rep_juste']."',commentaire='".$_POST['commentaire']."', id_theme='".$_POST['id_theme']."' ";
       $resultat=mysql_query($requete);
    header("Location:questionsGestion.php");
    }
    //--------------requête du menu
    $requete2="SELECT * FROM theme";
    $resultat2=mysql_query($requete2);
    ?>
    <!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 nom</title>
    </head>
     
    <body>
     
    <form id="monform" name="form1" method="post" enctype="multipart/form-data" action="questionsAjout.php">
      <p>
        <label>Theme :
          <select name="id_theme" id="id_theme">
     		<?php while($theme=mysql_fetch_array($resultat2))  { ?>
        <option  value="<?php echo $theme['id_theme']; ?>"><?php echo $theme['intitule_theme']; ?></option>
    		<?php } ?>
       </select>
        </label>
      </p>
      <p>
        <label>question :
          <input type="text" name="question"  />
        </label>
      </p>
      <p>
        <label>rep1 :
          <input type="text" name="rep1"  />
        </label>
      </p>
        <p>
        <label>rep2 :
          <input type="text" name="rep2"  />
        </label>
      </p>
        <p>
        <label>rep3 :
          <input type="text" name="rep3"  />
        </label>
      </p>
         <p>
        <label>rep_juste :
          <input type="text" name="rep_juste"  />
        </label>
      </p>
       <p>
        <label>commentaire :
          <input type="text" name="commentaire" />
        </label>
      </p>
      <p>
        <label>
          <input type="submit" name="bouton"  value="Envoyer" />
        </label>
      </p>
    </form>
     
    </body>
    </html>
    je tape ma question, mes trois réponses, je copie colle la bonne réponse, je mets le commentaire, et j'envoie le tout à la base de données. Génial, ça fonctionne.

    A présent, je veux améliorer le concept et mettre un bouton radio à côté de chaque réponse, tout en enlevant le champ "réponse juste". La case cochée correspond donc à la bonne réponse.

    Voici mon script, qui ne fonctionne malheureusement pas pour la case cochée (ça me met à chaque fois, pour réponse juste, "on", sans que je comprenne pourquoi)

    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    <?php
    session_start();
     
    //----Verification login
    if(!isset($_SESSION['code']))
    {
    header("Location:loginProf.php");
    }
    ?>
     
    <?php
    include("configProf.php");
    if(isset($_POST['bouton']))
    {
       $requete="INSERT INTO qcm SET question='".$_POST['question']."',  rep1='".$_POST['rep1']."', rep2='".$_POST['rep2']."',  rep3='".$_POST['rep3']."',rep_juste='".$_POST['rep_juste']."',commentaire='".$_POST['commentaire']."', id_theme='".$_POST['id_theme']."' ";
       $resultat=mysql_query($requete);
    header("Location:questionsGestion.php");
    }
    //--------------requête du menu
    $requete2="SELECT * FROM theme";
    $resultat2=mysql_query($requete2);
    ?>
    <!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 nom</title>
    </head>
     
    <body>
     
    <form id="monform" name="form1" method="post" enctype="multipart/form-data" action="questionsAjout.php">
      <p>
        <label>Theme :
          <select name="id_theme" id="id_theme">
     		<?php while($theme=mysql_fetch_array($resultat2))  { ?>
        <option  value="<?php echo $theme['id_theme']; ?>"><?php echo $theme['intitule_theme']; ?></option>
    		<?php } ?>
       </select>
        </label>
      </p>
      <p>
        <label>question :
          <input type="text" name="question"  />
        </label>
      </p>
      <p>
        <label>rep1 :
          <input name="rep1" type="text" /><input type="radio" name="rep_juste" />
        </label>
      </p>
        <p>
        <label>rep2 :
          <input type="text" name="rep2" /><input type="radio" name="rep_juste" />
        </label>
      </p>
        <p>
        <label>rep3 :
          <input type="text" name="rep3" /><input type="radio" name="rep_juste" />
        </label>
      </p>
       <p>
        <label>commentaire :
          <input type="text" name="commentaire" />
        </label>
      </p>
      <p>
        <label>
          <input type="submit" name="bouton"  value="Envoyer" />
        </label>
      </p>
    </form>
     
    <p><a href="questionsGestion.php">Retour</a></p>
    <p><a href="pageConnexion.html">Accueil</a></p>
    </body>
    </html>
    Les seuls tutoriaux que j'ai trouvé permettent seulement de récupérer les données cochées dans un formulaire (du style Mr ou Mme, Débutant ou Initié) avec $_POST['civilite'] ou $_POST['sexe'], mais là, quand je mets $_POST['rep_juste'], ça ne fonctionne pas.

    Où est mon erreur?

    Merci par avance,
    Johnny

    P.S: j'ai essayé de mettre value = "$_POST [rep1]", value = "$_POST [rep2]", value = "$_POST [rep3]" pour les 3 radio buttons, en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="radio" name="rep_juste" value = "$_POST [rep3]" />
    par exemple, en replaçant rep3 par rep2 et rep 1 pour les autres réponses proposées, mais sans succès.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    278
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 278
    Points : 284
    Points
    284
    Par défaut
    Un petit screen de ce que tu as et de ce que tu veux obtenir serait appréciable, parceque perso je me suis un peu embrouillé à la lecture

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 207
    Points : 114
    Points
    114
    Par défaut
    bien sûr.

    Au départ, j'ai donc tous les champs possibles (question, les 3 réponses, la réponse juste et le commentaire)

    Ce que je cherche à obtenir, c'est la même chose sans le champ "réponse juste", avec un bouton radio à côté des 3 réponses proposées. Le bouton coché indique la bonne réponse.

    Je joins également le screen.

    Je suis sûr que c'est simple à faire, mais je suis débutant en PHP. Mais je crois avoir trouvé dans le livre PHP 5 avancé. Je tente et je préviendrai si je trouve la solution.

    Merci par avance de te pencher sur mon cas au cas où!
    Johnny
    Images attachées Images attachées   

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 207
    Points : 114
    Points
    114
    Par défaut
    non, finalement, après de multiples essais, je n'ai pas trouvé comment faire.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    278
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 278
    Points : 284
    Points
    284
    Par défaut
    Ah la c'est bcp plus clair!
    Je comprend pas trop à quel niveau tu but par contre surtout si la 1er version fonctionne parfaitement, je pars donc du principe que l'insertion ds ta base fonctionne avec la première version.

    Donc tu ajoute trois boutons radio, pour lesquels tu défini un nom identique (ex : name=btnRadio), ensuite tu leur donne les valeurs (ex : value=) 1, 2 et 3.
    Une fois le formulaire validé tu récupère la valeur de ton bouton radio comme cela $numRepJuste = $_POST['btnRadio'];

    Puis tu défini la réponse juste parmi celle que tu as écrit de la manière suivante
    $repJuste = $_POST['rep'.$numRepJuste];

    Bon c'est un peu brouillon et pas vraiment super comme façon de codé mais dans ton cas ça devrais suffir, si tu veux mieux je ferais ça demain

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 207
    Points : 114
    Points
    114
    Par défaut
    Je te dis un très grand merci! Ça fonctionne parfaitement!

    Mon erreur? Ne pas avoir déclaré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $numRepJuste = $_POST['btnRadio'];
    ni
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $repJuste = $_POST['rep'.$numRepJuste];
    avant de lancer la requête. Et, je t'avoue, je n'avais pas du tout pensé à écrire quelque chose du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $repJuste = $_POST['rep'.$numRepJuste];
    Voici donc mon code, si certains rencontrent les mêmes difficultés. Merci encore!

    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    <?php
    session_start();
     
    //----Verification login
    if(!isset($_SESSION['code']))
    {
    header("Location:loginProf.php");
    }
    ?>
     
    <?php
    include("configProf.php");
    if(isset($_POST['bouton']))
    {
       $numRepJuste = $_POST['btnradio'];
       $rep_juste = $_POST['rep'.$numRepJuste];
     
       $requete="INSERT INTO qcm SET question='".$_POST['question']."',  rep1='".$_POST['rep1']."', rep2='".$_POST['rep2']."',  
       rep3='".$_POST['rep3']."',rep_juste='".$_POST['rep'.$numRepJuste]."',commentaire='".$_POST['commentaire']."', 
       id_theme='".$_POST['id_theme']."' ";
     
       $resultat=mysql_query($requete);
       header("Location:questionsGestion.php");
    }
     
    //--------------requète du menu
    $requete2="SELECT * FROM theme";
    $resultat2=mysql_query($requete2);
    ?>
    <!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 nom</title>
    </head>
     
    <body>
     
    <form id="monform" name="form1" method="post" enctype="multipart/form-data" action="questionsAjout.php">
      <p>
        <label>Theme :
          <select name="id_theme" id="id_theme">
     		<?php while($theme=mysql_fetch_array($resultat2))  { ?>
        <option  value="<?php echo $theme['id_theme']; ?>"><?php echo $theme['intitule_theme']; ?></option>
    		<?php } ?>
       </select>
        </label>
      </p>
      <p>
        <label>question :
          <input type="text" name="question"  />
        </label>
      </p>
      <p>
        <input name="rep1" type="text"/><input type="radio" name="btnradio" value="1"/>
        <label for ="rep1"></label>
      </p>
        <p>
        <input type="text" name="rep2"/><input type="radio" name="btnradio" value="2"/>
        <label for ="rep2"></label>  
    	</p>
        <p>
        <input type="text" name="rep3"/><input type="radio" name="btnradio" value="3"/>
        <label for ="rep3"></label>
      </p>
       <p>
        <label>commentaire :
          <input type="text" name="commentaire" />
        </label>
      </p>
      <p>
        <label>
          <input type="submit" name="bouton"  value="Envoyer" />
        </label>
      </p>
    </form>
     
    <p><a href="questionsGestion.php">Retour</a></p>
    <p><a href="pageConnexion.html">Accueil</a></p>
    </body>
    Johnny

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

Discussions similaires

  1. Récuperer les données d'un fichier txt pour les insérer dans une Table
    Par sandokhane dans le forum Bases de données
    Réponses: 47
    Dernier message: 31/05/2014, 15h10
  2. Réponses: 9
    Dernier message: 26/03/2011, 09h46
  3. Récupérer données formulaire et les afficher dans une liste à puce
    Par johnny3 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 06/02/2010, 20h38
  4. Réponses: 2
    Dernier message: 25/05/2009, 09h38
  5. Réponses: 3
    Dernier message: 23/04/2006, 12h14

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