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] Utiliser en case à cocher en PHP [Fait]


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de innova
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 185
    Points : 109
    Points
    109
    Par défaut [Tableaux] Utiliser en case à cocher en PHP
    Bonjour,

    J'ai un formulaire et j'aimerais faire un test uniquement si la case à cocher est checked.

    Comment faire ?

    J'arrive le faire avec d'autres éléments comme zone de liste déroulante car il suffit de mettre == true .

    Mais ici comment fait-on ?

    Merci d'avance.
    ++

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Comment ça un test ? A quel moment ?

  3. #3
    Membre régulier Avatar de innova
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 185
    Points : 109
    Points
    109
    Par défaut
    Citation Envoyé par Kerod
    Comment ça un test ? A quel moment ?
    re,

    En fait, je veux permettre à un membre de s'inscrire sur mon site et dans les options il y a la possibilité de s'inscrire à la newsletter.

    Mais cela n'est disponible que si l'option est cochée. (case cochée )

    Comment faire cela ?

    Il faut tester la valeur je suppose...

    MErci
    ++

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Généralement, si tu fais un système de checkbox tu recois uniquement ce qui a été coché. Prends un exemple tout simple : Tu crées ton formulaire avec deux checkbox différentes, puis tu fais une soumission du formulaire tout en mettant dans le code :
    Là tu verras les éléments qui te sont envoyés. Et si tout se passe bien tu auras que les checkbox cochés

  5. #5
    Invité
    Invité(e)
    Par défaut
    Pour simplifier les choses tu crées ta case à cocher en html avec un nom et une valeur que tu souhaites lui attribuer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='checkbox' name='exemple' value='checked'>
    Lorsque tu cliques sur le bouton d'envoi, la page de traitement du formulaire teste la case comme suit.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    // Tout code éventuel
    if ($_POST["exemple"] == "checked") {
       // Code si la case est cochée
    }
     
    else {
       // Code si la case n'est pas cochée
    }
    ?>
    A savoir que checked est un exemple mais peut être n'importe quoi.

    webrider

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Août 2002
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 194
    Points : 216
    Points
    216
    Par défaut
    et sinon une réponse plus de mon niveau (j'ai regardé des tutos car j'avais pa sle temps de tester par moi même... donc je te résume)

    si tu n'as qu'une seule case à cocher
    dans ton formulaire tu as ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='checkbox' name='case' value='on'>
    et dans ton script php qui vérifie ensuite tu fais juste une vérification du genre


    si tu as plusieurs cases à cocher tu mets leurs valeurs dans un tableau (d'ou les [] dans name)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="case[]" value="valeur">
    et dans ton script tu fais une boucle pour chaque $i tu fais un test
    pour savoir si c'est coché..
    (et si jamais tu veux la valeur tu regardes le contenu de la variable $case[$i])





    (à mon avis je suis tombé sur de vieux tuto avec register_global à on...)
    faudra surement récupérer $case en faisant
    dans ton script php avant de faire le test.

    j'ai peur d'être obscur...
    edit : voilà tout comme au dessus...
    Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait.
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.


    Spidercochon, spidercochon, il peut marcher au plafond
    ...MM ......Voici Spidercochon. Aidez le à conquérir le monde
    E(....)~....en le reproduisant.
    ...w

  7. #7
    Membre régulier Avatar de innova
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 185
    Points : 109
    Points
    109
    Par défaut
    Citation Envoyé par Kerod
    Généralement, si tu fais un système de checkbox tu recois uniquement ce qui a été coché. Prends un exemple tout simple : Tu crées ton formulaire avec deux checkbox différentes, puis tu fais une soumission du formulaire tout en mettant dans le code :
    Là tu verras les éléments qui te sont envoyés. Et si tout se passe bien tu auras que les checkbox cochés
    re,

    ok mais j'essaie de faire ceci et ca marche pas...

    if(($_FILES['userfile']['size']>0)&&($_FILES['userfile']['size']<=$maxFileSize) && ($_POST['avatar_chk'] == 'ON')) { {

    upload d'un fichier

    } else {

    echo "ko";
    }

    Comment faire ?

    MErci
    ++

  8. #8
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Tu as une accolade ouvrante en trop là...

    Et puis il faut être plus précis parce que "ça marche pas" c'est pas facile pour filer un coup de main.
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  9. #9
    Membre régulier Avatar de BGDC
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 102
    Points : 121
    Points
    121
    Par défaut
    Perso pour les formulaires, j'utilise ça, c'est simple a comprendre et tres efficace
    Bon allez, cette fois c'est sur, ça marche........bon aller je réessaye......

  10. #10
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if(($_FILES['userfile']['size']>0)&&($_FILES['userfile']['size']<=$maxFileSize) && ($_POST['avatar_chk'] == 'ON')) {
     
    //upload d'un fichier
     
    } 
     
    else {
     
    echo "ko";
     
    }
    Tu as déjà une { en trop à la fin de ton if et théoriquement ça doit marcher. Pourrais-tu simplement donner le code de ton formulaire en utilisant les balises de code pour plus de clareté merci.

    webrider

  11. #11
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2006
    Messages : 63
    Points : 67
    Points
    67
    Par défaut
    Vous faites tous bien compliqué.

    Imaginons un checkbox name="test"

    en php:

    if ($_POST['test']) {
    echo 'ok';
    }

    Suffit, tout simplement si il n'y a aucune valeur dans le checkbox, la valeur retournée est true si elle est cochée.

  12. #12
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    VOilà c'est ce que je disais au début, tout ce qui est checkbox est envoyé que si sa valeur checked est à true. Donc un simple test devrait suffir à te dire si oui ou non tu dois le prendre en compte (l'ajouter en BDD)

  13. #13
    Membre averti Avatar de johweb
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 342
    Points : 367
    Points
    367
    Par défaut
    Pour même faire plus propre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (isset($_POST['test'])) {
    echo 'ok';
    }
    ^^

  14. #14
    Membre régulier Avatar de innova
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 185
    Points : 109
    Points
    109
    Par défaut
    Citation Envoyé par Kerod
    VOilà c'est ce que je disais au début, tout ce qui est checkbox est envoyé que si sa valeur checked est à true. Donc un simple test devrait suffir à te dire si oui ou non tu dois le prendre en compte (l'ajouter en BDD)
    re,

    Sorry pour l'accolade en plus mais cela ne fonctionne toujours pas :-(((

    Il semble peut-être y avoir un problème dans mon test.

    Quelqu'un peut-il m'aider ?

    MErci

  15. #15
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Mets nous ton code complet dans ce cas

  16. #16
    Membre régulier Avatar de innova
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 185
    Points : 109
    Points
    109
    Par défaut
    Citation Envoyé par Kerod
    Mets nous ton code complet dans ce cas
    re,

    Voici le code :

    Si vous pouviez m'aider...

    Merci encore.
    ++

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
     
    <?php
     
    $tbl_news="tbl_news";
    $tbl_users="tbl_users";
    $tbl_rub_news="tbl_rub_news";
    $tbl_cmt_news="tbl_cmt_news";
    $tbl_gallery_news="tbl_gallery_news";
     
    $maxFileSize = 10240; // octets
     
    $nom_file   = $_FILES['userfile']['name'];
                $taille     = $_FILES['userfile']['size'];
                $tmp        = $_FILES['userfile']['tmp_name'];
     
    if(isset($_POST['add_user']) && $_POST['add_user']=='confirmer')  {
     
    $date_users = date("Y-m-d H:i:s");
     
     
    if (!empty($_POST['full_name_users']) || strlen($_POST['full_name_users']) >=30 && !empty($_POST['login_users']) ||  strlen($_POST['login_users']) >=10) {
     
        $sql_new_users = 'select count(*) from '.$tbl_users.' where login_users="'.$_POST['login_users'].'"';
        $result_new_users = mysql_query($sql_new_users) or die('Erreur du message :<br />'.$sql_new_users.'<br />'.mysql_error());
        $nbr_total_login_users = mysql_fetch_array($result_new_users);
     
       if (($nbr_total_login_users = $nbr_total_login_users[0]) == 0) {
     
             $password_users = $_POST['password_users'];
             $passord_confirm_users = $_POST['password_confirm_users'];
     
          if(trim($password_users) == trim($passord_confirm_users) && strlen($_POST['password_users']) >=10) {
            if (eregi("^[_\.0-9a-z-]+@([0-9a-z-]+\.)+[a-z]{2,4}$",$email_users)) {
             // if (!empty($_POST['full_name_users']) {
              if(($_FILES['userfile']['size']>0)&&($_FILES['userfile']['size']<=$maxFileSize) && ($_POST['avatar_chk'] == 'checked')) {
                if( ($_FILES['userfile']['type']=="image/pjpeg")
    			|| ($_FILES['userfile']['type']=="image/jpg") ) {
     
                // Bonnes dimensions ?
                //$size = GetImageSize($_FILES['userfile']['tmp_name']);
                $nom_file   = $_FILES['userfile']['name'];
                $taille     = $_FILES['userfile']['size'];
                $tmp        = $_FILES['userfile']['tmp_name'];
     
                            $size = getimagesize($_FILES['fichier']['tmp_name']);
     
     
                  if(($size[0]<=100)&&($size[1]<=100)) {
     
                $path_avatar = "avatars/";
     
     
                $sql_avatars_id_users = 'SELECT count(*) FROM '.$tbl_users.' ';
                $result_avatars_id_users = mysql_query($sql_avatars_id_users) or die('Erreur du message :<br />'.$sql_avatars_id_users.'<br />'.mysql_error());
                $nbr_total_avatars_id_users = mysql_fetch_array($result_avatars_id_users);
                $avatars_id = $nbr_total_avatars_id_users[0];
                $savefile= $avatars_id.".jpg";
                move_uploaded_file($tmp, "avatars/" .$savefile);
     
                $full_name_users = strip_tags($_POST['full_name_users']);
                $login_users = strip_tags($_POST['login_users']);
                $password_users = strip_tags($_POST['password_users']);
                $email_users = strip_tags($_POST['email_users']);
                $lastvisit_users = $_POST['lastvisit_users'];
     
                $full_name_users = addslashes($_POST['full_name_users']);
                $login_users = addslashes($_POST['login_users']);
                $password_users = addslashes($_POST['password_users']);
                $email_users = addslashes($_POST['email_users']);
                $lastvisit_users = $_POST['lastvisit_users'];
     
     
                $sql_insert_new_users = "insert into tbl_users " . "VALUES ('','$full_name_users','$login_users','$password_users','$status_users', '$sign_users', '$date_users')";
                $result_insert_new_users = mysql_query($sql_insert_new_users) or die('Erreur du message :<br />'.$sql_insert_new_users.'<br />'.mysql_error());
     
                if ($_POST['newsletters_user'] == 'true') {
     
                  $sql_insert_new_newsletters = "insert into tbl_newsletters " . "VALUES ('','$email_users','1')";
                  $result_insert_new_newsletters = mysql_query($sql_insert_new_newsletters) or die('Erreur du message :<br />'.$sql_insert_new_newsletters.'<br />'.mysql_error());
     
                } else
                {
                  $sql_insert_new_no_newsletters = "insert into tbl_newsletters " . "VALUES ('','$email_users','0')";
                  $result_insert_new_no_newsletters = mysql_query($sql_insert_new_no_newsletters) or die('Erreur du message :<br />'.$sql_insert_new_no_newsletters.'<br />'.mysql_error());
                }
     
                } else
                {
                  echo"<script>alert('Taille maximum 100 x 100 pixels !'); </script>";
                }
     
                } else
                {
                  echo"<script>alert('Uniquement une image .jpg ou .jpeg');</script>";
                }
              } else
              {
                echo"<script>alert('Votre fichier est trop lourd ! ( Poids maximum : 10 Ko )'); </script>";
              }
     
            } else {
                echo"<script>alert('Veuillez saisir correctement votre adresse e-mail s.v.p !'); </script>";
            }
          } else {
            echo"<script>alert('Veuillez saisir correctement votre mot de passe s.v.p !'); </script>";
          }
       } else {
            echo"<script>alert('Veuillez saisir un autre identifiant s.v.p !'); </script>";
       }
     
    } else if (isset($_POST['add_user'])) {
        echo"<script>alert('Veuillez saisir correctement tous les champs s.v.p !'); </script>";
    }
     
    } else {
     
    ?>
     
    <table class="box" width="581" border="0" align="center">
          <tr>
              <td width="100%">
              <img src="images/crea.jpg" border="0"/>
     
          <form name="new_user" action="<?php $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data">
     
     
     
          <table width="100%" border="0" cellpadding="0" cellspacing="0" >
          <tr>
              <td align="right">Nom complet :</td>
              <td align="left">&nbsp;<input name="full_name_users" type="text" size="30" maxlength="30"></input></td></tr>
          <tr>
              <td align="right">Identifiant :</td>
    	  <td align="left">&nbsp;<input name="login_users" type="text" size="30" maxlength="30"></input>
    		Min 10 caractères.</td></tr>
          <tr>
              <td align="right">Mot de passe :</td>
    	  <td align="left">&nbsp;<input name="password_users" type="password" size="30" maxlength="30"></input>
    		Min 10 caractères.</td></tr>
          <tr>
              <td align="right">Confirmer mot de passe :</td>
    	  <td align="left">&nbsp;<input name="password_confirm_users" type="password" size="30" maxlength="30"></input></td></tr>
    	  <tr>
              <td align="right">E-mail :</td>
    	  <td align="left">&nbsp;<input name="email_users" type="text" size="30" maxlength="30"></input></td></tr>
    	  <tr>
              <td align="right">&nbsp;</td>
    	  <td></input></td></tr>
    	  <tr>
              <td align="right">&nbsp;</td>
    	  <td>
    		<p align="center">Options disponibles :</input></td></tr>
          <tr>
              <td align="right">Abonnement Newsletter :</td>
    	  <td align="left">&nbsp;<select size="1" name="newsletters_user">
    		<option value="true">oui</option>
    		<option value="false">non</option>
    		</select></td></tr>
    	  <tr>
              <td align="right">Ajouter Avatar :</td>
    	  <td align="left">&nbsp;<input type="file" name="userfile" size="15"><input type="checkbox" name="avatar_chk" value="checked"></td></tr>
    	   <tr>
              <td align="right">Ajouter Signature :</td>
    	  <td align="left">&nbsp;<textarea rows="3" name="sign_users" cols="40"></textarea></td></tr>
          <tr>
              <td align="right">&nbsp;</td>
    	  <td>
       	        <!-- Par défaut, le compte hérite du statut "lecteur" (i.e. "2") -->
    	        <input type="hidden" name="status_users" size="10" value="2"></input>
    	        <input type="hidden" name="lastvisit_users" size="10" value="<? $date_users ?>"></input>
    	  <tr>
              <td align="right">&nbsp;</td>
    	  <td align="left">&nbsp;<input type="submit" name="add_user" value="confirmer">
              <input type="reset" name="reset" value="réinitialiser" ></table>
          </form>
          </td>
          </tr>
          </table>
     
    <?php
     
    }
     
    ?>

  17. #17
    Membre régulier Avatar de innova
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 185
    Points : 109
    Points
    109
    Par défaut
    Citation Envoyé par Kerod
    Mets nous ton code complet dans ce cas
    re,

    Auriez-vous une idée svp ?

    Je suis bloqué et je ne pas la solution ?

    MErci
    ++

  18. #18
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par JWhite
    Il faut être plus précis parce que "ça marche pas" c'est pas facile pour filer un coup de main.
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  19. #19
    Membre régulier Avatar de innova
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 185
    Points : 109
    Points
    109
    Par défaut
    Citation Envoyé par JWhite
    RE,

    A chaque fois il me dit votre fichier est trop lourd ( message d'erreur )

    Il ne semble pas tenir compte si on choisit oui/non afin de vouloir ou pas ajouter un avatar ( image quoi )

    Comment faire ?

    J'ai essayé via un flag et ca marche pas ...

    Une idée ?

    Merci
    ++

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

Discussions similaires

  1. [Tableaux] Utilisation de cases à cocher
    Par blue-fab dans le forum Langage
    Réponses: 5
    Dernier message: 27/06/2007, 12h10
  2. [Tableaux] Récupérer des cases à cocher
    Par amestoche dans le forum Langage
    Réponses: 1
    Dernier message: 27/04/2007, 21h29
  3. Utilisation des cases à cocher et "switch case"
    Par jarod71 dans le forum Langage
    Réponses: 4
    Dernier message: 21/01/2007, 14h37
  4. Réponses: 24
    Dernier message: 24/11/2005, 10h28
  5. [Tableaux] cases à cocher et PHP
    Par tjoce dans le forum Langage
    Réponses: 5
    Dernier message: 20/10/2005, 10h06

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