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 :

Comment faire une liste de checkbox "groupée" ?


Sujet :

Langage PHP

  1. #1
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut Comment faire une liste de checkbox "groupée" ?
    Bonjour,

    je crée dynamiquement une liste de checkbox dans un formulaire en fonction du résultat d'une requête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    foreach($aEtablissements as $key=>$val) {
    	$e = $aEtablissements[$key];
    	echo '<input type="checkbox" name="etablissement_'.$e['id'].'" />';
    }
    ?>
    Le problème est qu'il est impossible de gérer la réception de ce formulaire puisque on ne peux pas connaitre à l'avance le nom des variables $_POST['etablissement_XXX']. Je pense donc (du moins j'espère) qu'il existe une autre méthode...
    L'idéal serait la réception d'un tableau nommé $_POST['etablissement_id'] contenant l'identifiant des établissements cochés mais je ne sais pas le faire.
    Une aide serait donc la bienvenue.
    Merci d'avance


  2. #2
    Membre averti Avatar de sacricri
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Points : 384
    Points
    384
    Par défaut
    avant la boucle while :
    dans la boucle while :
    après ta boucle while :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="liste_e" value="$liste_e" />
    dans ta page suivant, tu récupère la valeur de liste_e ($_POST['liste_e']) et tu fais un explode de la liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $explode_liste_e = explode("-",$_POST['liste_e']);
    tu fais un count du tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $count_explode_liste_e = count($explode_liste_e);
    tu crées un tableau vide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $value_checkbox = array();
    tu fais une boucle for :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for($i=0;$i<$count_explode_liste_e;$i++){
       $post = $_POST['etablissement_'.$explode_liste_e[$i].''];
       array_push($value_checkbox, $post);
    }
    au final, tu as récupéré un tableau avec toutes tes valeurs

    je pense que c'est un bon début

  3. #3
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    foreach($aEtablissements as $key=>$val) {
    	$e = $aEtablissements[$key];
    	echo '<input type="checkbox" name="etablissement_id[]" value="'.$e['id'].'" />';
    }
    ?>


    tout simplement...

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Tu peux passer un tableau de tes établissent en nommant tes input etablissement[] !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo '<input type="checkbox" name="etablissement[]" value="'.$e[id].'" />';
    }
    Ensuite , pour récupérer les id qui ont été check, tu fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(!empty($_POST['etablissement'])){
       foreach($_POST['etablissement'] as $key=>$value){
         echo 'etablissement '.$value.' sélectionné';
       }
    }

  5. #5
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    merci sacricri mais je vais prendre ma méthode...

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

Discussions similaires

  1. [Vb.net] Comment faire une liste à partir d'une string
    Par NicoNGRI dans le forum ASP.NET
    Réponses: 1
    Dernier message: 25/10/2006, 14h15
  2. Comment faire une liste d'évènements ?
    Par WebPac dans le forum Langage
    Réponses: 4
    Dernier message: 16/02/2006, 10h36
  3. Comment faire une liste d'image de choix ?
    Par poussinphp dans le forum Composants VCL
    Réponses: 4
    Dernier message: 01/10/2005, 00h34

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