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 :

PB avec Checkbox


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    débutant SAP BO
    Inscrit en
    Avril 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : débutant SAP BO

    Informations forums :
    Inscription : Avril 2005
    Messages : 228
    Points : 102
    Points
    102
    Par défaut PB avec Checkbox
    Bonjour,
    Voila j'ai un petit probleme. Dans un formulaire de modification , j'ai des données de Type SET. Je les affiches dans des Checkbox cochés ou non. Le probleme est que si je decoche tout, alors rien n'est envoyé dans le POST ...et donc ca ne peut pas modifier. Comment remedier a cela ?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    tu teste l'existance de cette variable en question et si ça n'existe pas , tu donnes une valeur par defaut sinon elle garde sa valeur
    Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789

  3. #3
    Membre régulier
    Homme Profil pro
    débutant SAP BO
    Inscrit en
    Avril 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : débutant SAP BO

    Informations forums :
    Inscription : Avril 2005
    Messages : 228
    Points : 102
    Points
    102
    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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    case (eregi("^set",$tab[$i][1])==true) : 
        echo "<p>";
        //on creer un tableau contenant les differentes valeurs que peut prendre l'attribut
        if (eregi('^(set)\((.+)\)$', $tab[$i][1], $tmp)) 
        {
         $tmp[2] = substr(ereg_replace('([^,])\'\'', '\\1\\\'', ',' . $tmp[2]), 1);
         $valeurs[$tab[$i][1]]=explode(",",$tmp[2]);
         echo "<fieldset >";
         echo "<legend>".$tab[$i][0]."</legend>";
         foreach($valeurs[$tab[$i][1]] as $j => $valeur) 
         { 
          $valeurs[$tab[$i][1]][$j]=substr($valeur,1,strlen($valeur)-2);
     
          //if (($valeurs[$tab[$i][1]][$j])==($tab[$i][3]))
          if (eregi($valeurs[$tab[$i][1]][$j],$tab[$i][3])==true)
          {
           echo "<p><label>".$valeurs[$tab[$i][1]][$j]." : </label><input type='checkbox' name='".$tab[$i][0]."[]' value='".$valeurs[$tab[$i][1]][$j]."' checked></input></p>";;
          }
          else
          {
           echo "<p><label>".$valeurs[$tab[$i][1]][$j]." : </label><input type='checkbox' name='".$tab[$i][0]."[]' value='".$valeurs[$tab[$i][1]][$j]."'></input></p>";;
          }
         }
        }
        echo "</fieldset></p>";
       break;
    $valeurs[$tab[$i][1]][$j] >> valeur de l'attribut
    $tab[$i][0] >> nom de l'attribut

    Voila comment je recupere mes infos, alors je ne vois pas pourquoi ca ne fonctionne pas dans le post meme si c'est vide

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    il faut qu'en plus tu envoyes l'ancienne valeur de la case avec un "input type=hidden"
    comme ça tu pourras savoir si faut ôter le choix

  5. #5
    Membre régulier
    Homme Profil pro
    débutant SAP BO
    Inscrit en
    Avril 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : débutant SAP BO

    Informations forums :
    Inscription : Avril 2005
    Messages : 228
    Points : 102
    Points
    102
    Par défaut
    donc pour chaque valeur du checkox j envoi en caché mais je ne vois pas ce que ca va changer si on ne selectionne rien ! et je ne vois pas comment mettre ca en place !

  6. #6
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="hidden" name="champ_1" value="0" />
    <input type="checkbox" name="champ_1" value="1" />
    1° cas:
    checké, l'utilisateur ne touche rien => checkbox (1) est envoyé

    2° cas:
    checké, l'utilisateur décheck => hidden (0) est envoyé

    3° cas:
    pas checké, l'utilisateur check => checkbox (1) est envoyé

    4° cas:
    pas checké, l'utilisateur ne touche rien => hidden (0) est envoyé

  7. #7
    Membre régulier
    Homme Profil pro
    débutant SAP BO
    Inscrit en
    Avril 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : débutant SAP BO

    Informations forums :
    Inscription : Avril 2005
    Messages : 228
    Points : 102
    Points
    102
    Par défaut
    donc avec cette methode on a qu'un seul truc envoyé ? enfin on a pas de doublons de la valeur ?

  8. #8
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Comment ça serait possible ?

    Comment tu peux avoir deux valeurs différentes pour une même clef dans un tableau associatif ($_POST) ?

  9. #9
    Membre régulier
    Homme Profil pro
    débutant SAP BO
    Inscrit en
    Avril 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : débutant SAP BO

    Informations forums :
    Inscription : Avril 2005
    Messages : 228
    Points : 102
    Points
    102
    Par défaut
    le truc c'est que je vois pas comment faire a partir de ma fonction ou je m occupe des checkbox :

    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
     
    if (eregi('^(set)\((.+)\)$', $donnees[1], $tmp)) 
     {
      $tmp[2] = substr(ereg_replace('([^,])\'\'', '\\1\\\'', ',' . $tmp[2]), 1);
      $valeurs[$donnees[1]]=explode(",",$tmp[2]);
      echo "<fieldset >";
      echo "<legend>".$donnees[0]."</legend>";
      foreach($valeurs[$donnees[1]] as $j => $valeur) 
      { 
       $valeurs[$donnees[1]][$j]=substr($valeur,1,strlen($valeur)-2);
     
       if (eregi($valeurs[$donnees[1]][$j],$donnees[3])==true)
       {
        echo "<p><label>".$valeurs[$donnees[1]][$j]." : </label><input 
    type='checkbox' name='".$donnees[0]."[]' value='".$valeurs[$donnees[1]]
    [$j]."' checked></input></p>";;
        }
       else
       {
        echo "<p><label>".$valeurs[$donnees[1]][$j]." : </label><input 
    type='checkbox' name='".$donnees[0]."[]' value='".$valeurs[$donnees[1]]
    [$j]."'></input></p>";;
         }
      }
     }
    $donnees[0] c'est le nom de l'attribut
    $donnees[1]][$j] c'est le nom de l'attribut

  10. #10
    Membre régulier
    Homme Profil pro
    débutant SAP BO
    Inscrit en
    Avril 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : débutant SAP BO

    Informations forums :
    Inscription : Avril 2005
    Messages : 228
    Points : 102
    Points
    102
    Par défaut
    le truc c'est que je vois pas comment faire a partir de ma fonction ou je m occupe des checkbox :

    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
     
    if (eregi('^(set)\((.+)\)$', $donnees[1], $tmp)) 
     {
      $tmp[2] = substr(ereg_replace('([^,])\'\'', '\\1\\\'', ',' . $tmp[2]), 1);
      $valeurs[$donnees[1]]=explode(",",$tmp[2]);
      echo "<fieldset >";
      echo "<legend>".$donnees[0]."</legend>";
      foreach($valeurs[$donnees[1]] as $j => $valeur) 
      { 
       $valeurs[$donnees[1]][$j]=substr($valeur,1,strlen($valeur)-2);
     
       if (eregi($valeurs[$donnees[1]][$j],$donnees[3])==true)
       {
        echo "<p><label>".$valeurs[$donnees[1]][$j]." : </label><input 
    type='checkbox' name='".$donnees[0]."[]' value='".$valeurs[$donnees[1]]
    [$j]."' checked></input></p>";;
        }
       else
       {
        echo "<p><label>".$valeurs[$donnees[1]][$j]." : </label><input 
    type='checkbox' name='".$donnees[0]."[]' value='".$valeurs[$donnees[1]]
    [$j]."'></input></p>";;
         }
      }
     }
    $donnees[0] c'est le nom de l'attribut
    $donnees[1]][$j] c'est la valeur de l'attribut

  11. #11
    Membre régulier
    Homme Profil pro
    débutant SAP BO
    Inscrit en
    Avril 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : débutant SAP BO

    Informations forums :
    Inscription : Avril 2005
    Messages : 228
    Points : 102
    Points
    102
    Par défaut
    comment j'inclu les champs de type hidden la dedans ? sachant que ds mon traitement tout est automatisé.

  12. #12
    Membre régulier
    Homme Profil pro
    débutant SAP BO
    Inscrit en
    Avril 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : débutant SAP BO

    Informations forums :
    Inscription : Avril 2005
    Messages : 228
    Points : 102
    Points
    102
    Par défaut
    Ce que je ne comprend pas c'est que tout les autres types de données sont envoyé meme si les input sont vides...


    Mr N toi seul semble pouvoir eclairer ma lanterne, MAIS ou es tu ?

  13. #13
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Il suffit de prononcer mon nom et je sors de ma lampe
    $donnees[1]][$j] vaut quoi ?

  14. #14
    Membre régulier
    Homme Profil pro
    débutant SAP BO
    Inscrit en
    Avril 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : débutant SAP BO

    Informations forums :
    Inscription : Avril 2005
    Messages : 228
    Points : 102
    Points
    102
    Par défaut
    $donnees[1]][$j] c'est la valeur d'un set
    par exemple, si le set est de la forme set('architecte', 'paysagiste')
    alors $donnees[1]][$j] sera architecte et apres paysagiste

  15. #15
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Au pif :

    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
     
    if (eregi('^(set)\((.+)\)$', $donnees[1], $tmp)) 
    {
      $tmp[2] = substr(ereg_replace('([^,])\'\'', '\\1\\\'', ',' . $tmp[2]), 1);
      $valeurs[$donnees[1]]=explode(",",$tmp[2]);
      echo "<fieldset >";
      echo "<legend>".$donnees[0]."</legend>";
      foreach($valeurs[$donnees[1]] as $j => $valeur) 
      { 
         $valeurs[$donnees[1]][$j]=substr($valeur,1,strlen($valeur)-2);
     
         $checked = eregi($valeurs[$donnees[1]][$j],$donnees[3])==true) ? 'checked="checked"' : '';
         echo "<p><label>".$valeurs[$donnees[1]][$j]." : </label>";
         echo '<input type="hidden" name="'. $donnees[0] .'[]" value="-1" />';
         echo "<input type='checkbox' name='". $donnees[0] ."[]' value='".$valeurs[$donnees[1]][$j]."' ". $checked ." />";
         echo "</p>";;
      }
    }
    <avis personnel>Par contre je trouve vraiment bizarre d'attribuer une valeur telle que "architecte" à un checkbox. Pour moi un checkbox c'est coché/décoché donc les valeurs attendues seraient plutot 1/0 ou on/off </avis>

  16. #16
    Membre régulier
    Homme Profil pro
    débutant SAP BO
    Inscrit en
    Avril 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : débutant SAP BO

    Informations forums :
    Inscription : Avril 2005
    Messages : 228
    Points : 102
    Points
    102
    Par défaut
    reponse a l avis perso : la base n'est pas de moi, et de toute facon ca doit pouvoir s adapter a n importe quelle base mon script , et pouvoir generer des formulaire d ajout et de modif des données de la base

  17. #17
    Membre régulier
    Homme Profil pro
    débutant SAP BO
    Inscrit en
    Avril 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : débutant SAP BO

    Informations forums :
    Inscription : Avril 2005
    Messages : 228
    Points : 102
    Points
    102
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $checked = eregi($valeurs[$donnees[1]][$j],$donnees[3])==true) ? 'checked="checked"' : '';
    me donne une parse error

  18. #18
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Tu n'es pas capable de la résoudre ? Indice : il manque une parenthèse (

  19. #19
    Membre régulier
    Homme Profil pro
    débutant SAP BO
    Inscrit en
    Avril 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : débutant SAP BO

    Informations forums :
    Inscription : Avril 2005
    Messages : 228
    Points : 102
    Points
    102
    Par défaut
    meme avec ca continue ( et je suis un peu incapable oui, trop de blanc a midi freine mon esprit)

  20. #20
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $checked = (eregi($valeurs[$donnees[1]][$j],$donnees[3])==true) ? 'checked="checked"' : '';
    ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Pb validation formulaire avec checkbox
    Par wolfe dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/12/2005, 08h50
  2. [JTree] Feuille avec CheckBox
    Par redtux dans le forum Composants
    Réponses: 4
    Dernier message: 27/10/2005, 20h11
  3. Mise en archive avec checkbox
    Par flo456 dans le forum ASP
    Réponses: 21
    Dernier message: 19/10/2005, 13h41
  4. [C#]Datagrid avec checkboxs et pagination
    Par kenzo080 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 19/07/2005, 07h10
  5. [C#] TreeView avec CheckBox "indeterminate"
    Par padumeur dans le forum Windows Forms
    Réponses: 3
    Dernier message: 27/01/2005, 20h53

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