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 :

[Tableaux] Envoyer plusieurs checkboxes


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 42
    Points : 29
    Points
    29
    Par défaut [Tableaux] Envoyer plusieurs checkboxes
    Bonjour

    je crée un formulaire avec des checkbox, dont les correspond aux numéro du produit de la ligne (une case à cocher par produit, un peu comme l'interface de phpmyadmin).

    je crée une checkbox d'un produit comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo("<td align='center'><input type='checkbox' name='$num'></td>");

    Par contre je n'arrive pas à récupérer les champs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //recupération du nombre de lignes crées dans la page précédente
    $i = $_SESSION['i'];
     
    //pour chaque ligne
    for ($i = 1; $i <= $_SESSION['i']; $i++) {
     
    //on stocke le contenu des checkbox dans $selection
    	$selection = $_POST['$i'];
     
    //si $selection n'est pas null
    	if ($selection!="") {
                     echo $selection;
            }
    }
    Pouvez-vous me dire ce qui ne vas pas, car l'affichage $i retourne bien 4 dans mon exemple et quand je fais un $_POST['1'], il ne me retourne rien.
    Est-ce un probleme de $_POST qui ne sait pas interpréter le contenu des variable ou un probleme entre mes deux pages ayant en faute le nom des champs du formulaire ?

    Merci de votre aide.
    Cordialement

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 104
    Points : 100
    Points
    100
    Par défaut
    Si j'ai bien comprit en fait il faut que tu crée ton checkbox avec un nom fixe puis tu met un indice donc ta case a cocher deviens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo("<td align='center'><input type='checkbox' name='check[$num]'></td>");
    Et pour l'affichage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //recupération du nombre de lignes crées dans la page précédente
    $i = $_SESSION['i'];
     
    //pour chaque ligne
    for ($i = 1; $i <= $_SESSION['i']; $i++) {
     
    //on stocke le contenu des checkbox dans $selection
       $selection = $_POST['check'][$i];
     
    //si $selection n'est pas null
       if ($selection!="") {
                     echo $selection;
            }
    }

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 42
    Points : 29
    Points
    29
    Par défaut
    Le probleme est que je n'ai rien du tout même en faisant un $_POST['check2'] il ne m'affiche rien du tout alors que la case est cochée donc il devrait me retourner le nom de la checkbox...

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Non, l'idée de psykbe (que j'approuve, par ailleurs) est de te permettre de trouver tes checkboxes dans un tableau accessible par :
    Chaque checkbox sera donc du style (en fonction de ce que tu mets dans $num) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $_POST['check'][1]
    $_POST['check'][2]
    ...
    Tu peux parcourir toutes les checkboxes d'un coup en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(!empty($_POST['check']) and is_array($_POST['check'])){
       foreach($_POST['check'] as $checkbox['index'] => $checkbox['value']){
          // ...
       }
    }

  5. #5
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Points : 1 071
    Points
    1 071
    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
    //recupération du nombre de lignes crées dans la page précédente
    $i = $_SESSION['i'];
     
    //pour chaque ligne
    for ($i = 1; $i <= $_SESSION['i']; $i++) {
     
    //on stocke le contenu des checkbox dans $selection
       $selection = (isset($_POST['check'][$i]) ? true : false);
     
    //si $selection n'est pas null
       if ($selection!="") {
                     echo $selection;
            }
    }

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 42
    Points : 29
    Points
    29
    Par défaut
    Ok la solution me tente bien, mais deux questions pour le moment :

    - $checkbox['index'] => $checkbox['value'] : a quoi correspondent $checkbox['index'] et $checkbox['value'] ?

    - comment je peux donner le numéro de la checkbox dans ma variable $selection dans la boucle foreach ? ($selection = $_POST['check']; ?)

  7. #7
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    $checkbox['index'] correspond exactement à ta deuxième question ^^
    Je te propose de tester le code que je t'ai mis plus haut et de mettre ceci dans la boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $checkbox['index'] . ' => ' . $checkbox['value'] . '<br />';
    Je pense que tu comprendras tout de suite où je voulais en venir.
    Tu peux également utiliser ceci si tu préfères (quoique je le recommande moins car il est moins évident) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($_POST['check'] as $index => $value){
       echo $index.' => '.$value.'<br />';
    }

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 42
    Points : 29
    Points
    29
    Par défaut
    désolé de répondre si tard

    juste pour te dire que ton exemple n'affiche rien !

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 42
    Points : 29
    Points
    29
    Par défaut
    en fait je pense changer de méthode, j'ai passer trop de temps sur celle la donc je vais créer un lien avec un renvoi vers une page, je pense dans ce genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    suppr.php?id=<?php echo $num;?>
    Ca sera plus simple mais si j'ai le temps je retenterai cette solution, en tout cas merci pour votre aide !

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

Discussions similaires

  1. [Tableaux] Recuperer les valeurs de plusieurs checkbox
    Par tomenbois dans le forum Langage
    Réponses: 9
    Dernier message: 18/03/2008, 12h23
  2. Réponses: 2
    Dernier message: 10/06/2007, 19h41
  3. Réponses: 6
    Dernier message: 22/11/2006, 11h24
  4. Comment cocher/décocher plusieurs "checkbox"?
    Par Crazynoss dans le forum ASP
    Réponses: 2
    Dernier message: 15/05/2005, 23h38
  5. Cochage de plusieurs checkbox
    Par licorne dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 09/03/2005, 10h30

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