Partage
  • Partager sur Facebook
  • Partager sur Twitter

Checkbox

Probleme de syntaxe

    8 mai 2006 à 19:55:00

    Bonjour a tous :) ,
    J'ai un soucis avec mes checkbox :
    Je les ai declarer normalement :
    <input name="typeperf[]" type="checkbox" id="typeperf" value="Performer">
    <input name="typeperf[]" type="checkbox" id="typeperf" value="Panel">
    <input name="typeperf[]" type="checkbox" id="typeperf" value="Workshop">
    Et ensuite j'annonce leur affichage :
    while ($row=mysql_fetch_array($r)){
    $typeperf = $row[TypePerf];
    foreach($_POST['typeperf']) as $typeperf){
    print "<td>$typeperf</td>\n"};}

    Et pourtant a l'arrivee si je coche deux cases il ne m'affiche les resultats que pour une,
    Quelqu'un voit il une erreur flagrante dans ma syntaxe? ^^

    • Partager sur Facebook
    • Partager sur Twitter
      8 mai 2006 à 19:59:39

      met dans des balises ca donne pas envie de lire
      • Partager sur Facebook
      • Partager sur Twitter
        8 mai 2006 à 20:28:58

        $typeperf = $row[TypePerf];
        foreach($_POST['typeperf']) as $typeperf){

        Pourquoi deux fois $typeperf ?
        • Partager sur Facebook
        • Partager sur Twitter
          8 mai 2006 à 21:09:05

          toutes tes checkboxs ont le même noms (et le même id), c'est comme si tu utilisais des bouton de type radio, tu dois donner un nom différent à chacune de tes checkbox ! ;)
          • Partager sur Facebook
          • Partager sur Twitter
            8 mai 2006 à 21:49:30

            Citation : Sitevolution

            tu dois donner un nom différent à chacune de tes checkbox ! ;)


            C'est pas forcément vrai !
            Des checkboxs peuvent très bien avoir le même nom, ça ne pose aucun problème, tout dépend de l'utilité qu'on en fait.
            • Partager sur Facebook
            • Partager sur Twitter
              9 mai 2006 à 17:33:35

              oui, mais dans son cas il a besoin de chacune des checkbox, il doit donc donner un nom différent à chacune des checkbox ! :)
              • Partager sur Facebook
              • Partager sur Twitter
                9 mai 2006 à 18:56:00

                Salut :D , si j'ai bien compris je dois donner un nom a chacune de mes cases du genre:
                <input name="typeperf1[]" type="checkbox" id="typeperf" value="Performer">
                <input name="typeperf2[]" type="checkbox" id="typeperf" value="Panel">
                <input name="typeperf3[]" type="checkbox" id="typeperf" value="Workshop">

                Mais c'est surtout apres que je ne sais pas quoi ecrire o_O :
                on m'a dit qu'il fallait dans mon cas utiliser un "array()" ou je declarerais mes valeurs pour chaque checkbox.
                Et apres je bloque avec le "foreach":
                foreach($chose as $autrechose =>$encoreautrechose)
                Je ne sais pas quoi mettre a la place des $%chose
                J'ai presque fini mon programme mais il me manque cette solution pour avancer, pouvez vous m'aidez s'il vous plait,
                merci d'avance ;)
                • Partager sur Facebook
                • Partager sur Twitter
                  9 mai 2006 à 19:21:55

                  Salut ,j'ai une question subsidiaire :p :
                  A quoi sert les "[]" pour les noms des checkbox?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    9 mai 2006 à 20:32:46

                    à rien ! :p
                    c'est un nom comme un autre ! ;)
                    • Partager sur Facebook
                    • Partager sur Twitter
                      9 mai 2006 à 22:22:49

                      //mes cases a cochees sont normalement ecrites
                      <input name="typeperf[]" type="checkbox" id="typeperf" value="Performer">
                      <input name="typeperf[]" type="checkbox" id="typeperf" value="Panel">
                      <input name="typeperf[]" type="checkbox" id="typeperf" value="Workshop">

                      //j'ai declare mon array de cette facon
                      $typeperf = array('Performer','Panel','Workshop');
                      //mais apres je ne sais pas quoi mettre dans mon foreach pour lui dire que
                      //pour chaque checkbox il faut qu'il me verifie une condition if

                      foreach($??? as $??? =>???){if ...}
                      Quelqu'un peut il m'aider :ange: ?
                      • Partager sur Facebook
                      • Partager sur Twitter
                        9 mai 2006 à 22:36:09

                        Citation : Sitevolution

                        à rien ! :p
                        c'est un nom comme un autre ! ;)


                        Tu racontes vraiment n'importe quoi ! :-°
                        Les crochets permettent créer un array() de récupérer les choix multiples de checkbox. :-°
                        • Partager sur Facebook
                        • Partager sur Twitter
                          9 mai 2006 à 22:39:35

                          Donc si j'ai bien compris mes checkbox sont correctement declarees, pas besoin de leur donner de noms differents?mais les crochets sont insdispensables pour un array()
                          • Partager sur Facebook
                          • Partager sur Twitter
                            9 mai 2006 à 23:24:06

                            mé il n'a pas mis de numéro dans les crochets, et en plus il ne l'as pas déclarée comme une variable PHP !!! :colere2:
                            • Partager sur Facebook
                            • Partager sur Twitter
                              9 mai 2006 à 23:32:27

                              Citation : Sitevolution

                              mé il n'a pas mis de numéro dans les crochets, et en plus il ne l'as pas déclarée comme une variable PHP !!! :colere2:


                              Je me demande si tu sais comment on déclare un array() ?
                              Je me demande si tu sais comment on rempli un array() ?
                              Vas lire la doc stp, je vais pas te faire un cours sur l'array() et les checkboxs, c'est la base ça ! ^^
                              • Partager sur Facebook
                              • Partager sur Twitter
                                12 mai 2006 à 22:40:13

                                J'ai bien suivi vos conseils ;) et ai etudie ma programmation plus en detail ,j'ai donc reussi a faire un array et a faire reconnaitre l'existence de mes checkbox :D (mon probleme est bientot resolu)l'ennui c'est que maintenant je me retrouve devant un probleme de condition >_< ,
                                si par exemple je coche deux cases "typeperf" et une case "date" je me retrouve avec une requete de la forme:
                                WHERE pr.TypePerf="Panel" OR pr.TypePerf="Workshop" AND pf.Date="5/27/2006"
                                alors que ce que je souhaite est :
                                WHERE (pr.TypePerf="Panel" OR pr.TypePerf="Workshop") AND pf.Date="5/27/2006"
                                Quelqu'un peut il m'indiquer ou je dois utiliser ce qu'il faut pour permettre cette condition dans le code suivant:
                                <?php
                                array('Performer', 'Panel','Workshop');
                                array('5/26/2006','5/27/2006','5/28/2006','5/29/2006');
                                array('Indoor', 'Outdoor');
                                $where = 'WHERE';
                                $and=false; //au départ aucun type d'information n'a été détécté
                                if(ISSET($_POST['perfname'])&&$_POST['perfname']!='')
                                        {$where = $where.'  pr.PerfName="'.$_POST['perfname'].'"';
                                        $and=true;}
                                         if(isset($_POST['typeperf']) AND is_array($_POST['typeperf']))
                                       {
                                               foreach($_POST['typeperf'] AS $valeur)
                                              {
                                if(ISSET($_POST['typeperf'])&&$_POST['typeperf']!='')
                                        {if($and) $where = $where.' OR ';
                                        $where = $where.'  pr.TypePerf="'.$valeur.'"';
                                        $and=true;}}}
                                if(ISSET($_POST['perfcodename'])&&$_POST['perfcodename']!='')
                                        {if($and) $where = $where.' AND ';
                                        $where = $where.'  pr.PerfCodeName="'.$_POST['perfcodename'].'"';
                                        $and=true;}
                                if(isset($_POST['date']) AND is_array($_POST['date']))
                                       {
                                               foreach($_POST['date'] AS $valeur2)
                                              {
                                if(ISSET($_POST['date'])&&$_POST['date']!='')
                                        {if($and) $where = $where.' OR '; //Si il y a déjà une recherche de faite auparavant, j'ajoute un AND
                                        $where = $where.'  pf.Date="'.$valeur2.'"';
                                        $and=true;}}}
                                • Partager sur Facebook
                                • Partager sur Twitter

                                Checkbox

                                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                • Editeur
                                • Markdown