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 valeurs d'une liste de cases à cocher


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 18
    Points : 10
    Points
    10
    Par défaut Récupérer valeurs d'une liste de cases à cocher
    Bonjour bonjour,

    J'ai un tout petit souci, je débute en php et je dois faire une application qui me récupère les valeurs d'une liste de checkbox rempli dynamiquement depuis une bd MySQL et les renvoies vers une autre page.
    Il doit pouvoir y avoir au moins 1 choix et au max 4.

    Je pensais les faire passer par les QueryString, mais le truc, c'est que je ne sais pas comment m'y prendre pour récupérer les id's des valeurs checkés.

    Voici le code en question:

    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
    <?php
    	define("Serveur_SGBD", "localhost");
    	define("Login_BDD", "root");
    	define("Mot_de_passe", "");
    ?>
     
    <html>
    <body>
    <form method='POST' action='window.php'>
     
    <table border="1">
    <tr>
    <td width=''>Mot-clés</td>
    <td width=''>Choix</td>
    </tr>
     
    <?php
     
     
    		$id_SGBD=mysql_connect(Serveur_SGBD, Login_BDD,Mot_de_passe)or die ("Erreur à la connexion");
     
    		mysql_select_db("lyric") or die ("Erreur sélection BDD");
     
    $query="SELECT mot, mot_id FROM keyword" ;
    $result = mysql_query( $query )or exit ('Erreur SQL !'.$query.'<br>'.mysql_error());
    while($data = mysql_fetch_array($result))
    {
    echo"<tr><td>".$data['mot']."</td>";
    echo"<td><input type='checkbox' name='choix' value='".$data['mot_id']."'></td>";
    echo"</tr>";
    }
    mysql_close();
    ?>
     
    <br><input type='submit' name='choix' value='Choisir'>
    </table>
    </form>
    </body>
    </html>
    Merci d'avance, et n'hésitez pas si vous avez besoin d'autres informations.

  2. #2
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bonjour,

    as-tu déjà regardé les exemples donnés dans les tutoriels ?
    http://julp.developpez.com/php/formulaires/#L4
    http://g-rossolini.developpez.com/tu...tique#LIII-A-4

  3. #3
    Membre actif Avatar de turican2
    Profil pro
    Inscrit en
    Août 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2006
    Messages : 257
    Points : 239
    Points
    239
    Par défaut
    oula ça fait longtemps que j'ai pas fait ça mais un truc me gene:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    while($data = mysql_fetch_array($result))
    {
    echo"<tr><td>".$data['mot']."</td>";
    echo"<td><input type='checkbox' name='choix' value='".$data['mot_id']."'></td>";
    echo"</tr>";
    }
    tant que tu as des lignes, tu ecrases ta valeur 'name', si bien que dans la page qui reccupere ton _POST n'auras qu'une valeur de "name"

    modifie de cette façon:

    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
     
    <?php session_start(); // On démarre la session AVANT toute chose
    ?>
    ..
    <form method='POST' action='window.php'>
    ..
    $i=0 // il faut bien faire varier le nom pour ne pas reecraser sa valeur.
    $count =0
    while($data = mysql_fetch_array($result))
    {
    echo"<tr><td>".$data['mot']."</td>";
    echo"<td><input type='checkbox' name=$i value='".$data['mot_id']."'></td>";
    echo"</tr>";
    $i++;
    $count++;
    }
    $_SESSION['nbr'] = $count; // par session car je ne peux pas determiner avant la création du form le nombre de lignes que ramene ta requete.
     
    mysql_close();
    maintenant dans ta page windows.php, rebelotte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php session_start(); // On démarre la session AVANT toute chose
    $nbr = $_SESSION['nbr']; 
     
    for ($i=0; $i<$nbr+1; $i++){
    tab[$i] = _POST["$i"];
    }
    en théorie, le tableau tab[] doit bien contenir toutes tes valeurs.
    "La connaissance s'accroît quand on la partage."(Socrate)

    Si vous trouvez vous même la solution au POST que vous venez de poser, indiquez nous comment vous avez fait

  4. #4
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Citation Envoyé par turican2 Voir le message
    en théorie, le tableau tab[] doit bien contenir toutes tes valeurs.
    Pas tout à fait, si vous regardez les tutoriels cités, vous verrez que les checkbox ont une particulatité : si elles ne sont pas cochées, aucun paramètre n'est envoyé au serveur.

    Une bonne solution est de récupérer les cases cochées dans un tableau, en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='checkbox' name='choix[]' value='".$data['mot_id']."'>
    Dans la page interprétant le formulaire, il faut vérifier si le tableau choix existe, et s'il existe, les valeurs qu'il contient sont celles des cases cochées...

Discussions similaires

  1. Réponses: 5
    Dernier message: 12/06/2007, 10h21
  2. [VBA-E]Récupérer valeur d'une liste
    Par pitfrank dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/03/2007, 17h21
  3. récupérer valeurs d'une liste
    Par Pitou5464 dans le forum Access
    Réponses: 7
    Dernier message: 07/09/2006, 19h02
  4. récupérer valeurs d'une liste déroulante
    Par karidrou dans le forum Access
    Réponses: 5
    Dernier message: 13/01/2006, 09h31
  5. Cocher des cases d'une liste de cases à cocher
    Par isachat666 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 05/12/2005, 13h17

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