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 :

Verifier si au moins 1 checkbox est cochée


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut Verifier si au moins 1 checkbox est cochée
    Salut à tous,
    voila ce qui m’amène,
    j'ai des checkbox générées automatiquement dont le nombre est indéfini
    elles sont generé via ce code :

    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
     
    		$initialisation=null;	
    		while($data = mysql_fetch_array($ret)) 	
    		{
    		$id="$data[id]";
    		$promoteur="$data[promoteur]";	
    		$nom="$data[nom]";
    		if (empty($initialisation) OR $initialisation!=$data['promoteur'] ) {
     
                   echo $br.''. $promoteur.'<br/>'; //affiche
    			   $initialisation = $promoteur;
     		}
    		echo "<input type='checkbox' name='choix[]' value='$id'>$nom <br />";
     
    		}
    cela ca marche parfaitement.

    je vérifie donc les autres champs du formulaire avec ce type de code qui fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (isset($_POST["EnvoyerDonnee"])){ 
            $etat = "erreur"; 
     
    	if(isset($_POST['EnvoyerDonnee']) && ($usermail =="")){
    	echo'';
    	}else....
    Maintenant la question comment faire en php pour verifier qu'au moins 1 checkbox est coché ?

    Merci d'avance de votre aide.

  2. #2
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    Un conseil, si tu veux savoir ce qui se passe quand tu post des data, utilises un var_dump sur la variable $_POST.
    Et pour information, une checkbox non cochée n'est pas envoyée au PHP.

  3. #3
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    ok,
    mais cela me dit pas comment procéder ???

    un bout de code serait le bienvenue ...

  4. #4
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (isset($_POST['choix'])) {
    echo "yep";
    } else {
    echo "no checkbox sent";
    }

  5. #5
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    En fait j'ai dis de faire un var_dump de tes variables postées parce que ça te permet de comprendre ce qui se passe quand tu envoies un formulaire. C'est toujours mieux que d'essayer de deviner

  6. #6
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    j'y avais pensé a ce code le problème
    c'est que cela vérifie que toute les cases sont cochées.

    moi je veux vérifier qu'au moins 1 est cochée

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    cela vérifie que toute les cases sont cochées.
    J'imagine que tu as dû tester longtemps avant d'arriver à cette conclusion...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    Désolé, je ne comprends pas l'idée ...

  9. #9
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 101
    Points : 4 446
    Points
    4 446
    Par défaut
    L'idée est que tu places un print_r($_POST) a la reception de ton post

    Que dans ton formulaire tu ne coches que 2 cases

    et tu regardes le résultat du print_r !

    tu devrais alors comprendre en regardant comment faire ta boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($post["check"] as xx) {
     if xx=="yy" { }
    }
    $moi= ( !== ) ? : ;

  10. #10
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par spawns Voir le message
    j'y avais pensé a ce code le problème
    c'est que cela vérifie que toute les cases sont cochées.

    moi je veux vérifier qu'au moins 1 est cochée
    et la différence fondamentale est .... ?

  11. #11
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    Ah ok
    alors effectivement quand je met un print_r($_POST)
    mon $_POST['choix'] apparait pas.

    donc effectivement le code donné par chico_du_33 ne fonctionne pas avec plusieurs checkbox

  12. #12
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    Evidemment que ça fonctionne. Si tu ne soumets aucune checkbox, il n'y aura rien dans $_POST['choice']. Si tu en coches 1 ou plusieurs, il y aura un tableau de checkbox dans $_POST['choice'].

    Pour comprendre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php 
    if (isset($_POST['send'])) {
        $nb_chk = isset($_POST['choice']) ? count($_POST['choice']) : 0;
        echo $nb_chk. " submitted !";
    }
    ?>
    <form method="post">
    <?php 
    for ($i=0;$i<10;$i++) {
        ?><input type="checkbox" name="choice[]" value="<?=$i?>" /><?php
    }
    ?>
    <input name="send" type="submit" />
    </form>

  13. #13
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    Ok t on code fonctionne,
    c'est moi qui avais pas imprimé le truc.

    Merci Chico_du_33

    Au faite t'es de ou dans le 33 ???

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

Discussions similaires

  1. Réponses: 20
    Dernier message: 07/08/2012, 09h41
  2. Verifier si au moins une checkbox est cochée
    Par AyManoVic dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/01/2011, 08h41
  3. Vérifier si au moins une case est cochée dans checkbox
    Par pasc06 dans le forum Général JavaScript
    Réponses: 34
    Dernier message: 18/11/2008, 15h14
  4. verifier si un checkbox est coché
    Par kawther dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/04/2007, 17h30
  5. Vérifier si checkbox est cochée
    Par MYster dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/11/2005, 19h10

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