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] Tableau de checkbox


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut [Tableaux] Tableau de checkbox
    Bonjour à tous,

    J'ai un soucis avec l'état des checkbox dans un tableau et je ne trouve pas de solution simple...

    Voici un exemple en ligne : http://planning.radiologie-melun.com/test.php

    En testant, on se rend compte que le champ text retrouve sa valeur après validation alors que ce n'est pas le cas du Checkbox...

    Voici mon 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    echo "<FORM method='POST' action=''>" ;
     
    print_r($_POST);
    extract ($_POST) ;
     
    echo "<TABLE width=50%>" ;
     
    for ($i=0;$i<10;$i++)
    {
      echo "<TR>
              <TD width=33% align='center'>".$i."</TD>
              <TD width=33% align='center'>
                <INPUT TYPE='text' name='textt[]' value='".$textt[$i]."'>
              </TD>
              <TD align='center'> <input type='checkbox' name='toto[]'";
                if ($toto[$i])
                  echo " checked>" ;
                else
                  echo ">" ;
      echo "  </TD>
            </TR>" ;
    }
     
    echo "</TABLE>" ;
     
    echo "<input type='submit' name='val' value='test'>" ;
     
    echo "</FORM>" ;
    Merci du coup de main.

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Citation Envoyé par tlc77 Voir le message
    En testant, on se rend compte que le champ text retrouve sa valeur après validation alors que ce n'est pas le cas du Checkbox...
    Tu veux dire qu'après appui sur "Test" , la textbox garde la valeur tapée et que la combobox si elle a été cochée au préalable ne l'est plus ?

    Parce que chez moi ça marche ....

  3. #3
    Futur Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    En fait je veux que les "checkbox" réagissent comme les "TEXT".
    Si jamais je coche la checkbox sur la ligne 6 et que je valide, je veux que la ligne 6 aparaisse "selected"...

    PS : Il n'existe aucuns lien entre les champs "TEXT" et les "CHECKBOX".

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Août 2003
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 136
    Points : 84
    Points
    84
    Par défaut
    un fichier js qui recense tout les cases à cocher cochées.
    le JS met a jour un champs caché

    puis tu recuperes ton champs caché dans ton post et tu selectionnes les bonnes cases

  5. #5
    Futur Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Y a pas plus simple ?

    Ce n'est pas que ta solution me déplaise mais j'y connais absolument rien en JS...

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Août 2003
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 136
    Points : 84
    Points
    84
    Par défaut
    met toi au JS ca sert ^^

    quant a ma solution, ché pas si c'est la plus performante, mais je pense qu'elle fonctionne

  7. #7
    Membre régulier Avatar de +Guilhem
    Profil pro
    Ingénieur d'études Java/JEE
    Inscrit en
    Novembre 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur d'études Java/JEE

    Informations forums :
    Inscription : Novembre 2007
    Messages : 78
    Points : 112
    Points
    112
    Par défaut
    Donne des valeurs à tes checkbox ("0", "1", ...) puis en fonction du résultat $_POST pour chaque checkbox tu les coches ou pas. Non ?

  8. #8
    Futur Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut


    Pourquoi pas mais en ce moment j'ai pas le temps, mon projet doit etre opérationnel le 1er Janvier et j'ai encore du pain sur la planche...

    Donc si quelqu'un a une solution en PHP je suis preneur sinon je vais remplacer le checkbox par un <SELECT> avec comme option "oui" et "non".

    Merci !

  9. #9
    Futur Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par +Guilhem Voir le message
    Donne des valeurs à tes checkbox ("0", "1", ...) puis en fonction du résultat $_POST pour chaque checkbox tu les coches ou pas. Non ?
    J'essaye.

  10. #10
    Futur Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Quand tu parles de valeur tu parles bien du mot clef "VALUE" ? Tu est sur qu'il est utilisable dans un Checkbox ? Car pour moi la valeur d'un checkbox c'est TRUE ou FASLE en fonction de son état (coché ou pas) mais je me trompe peut etre...

  11. #11
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    c marrant comme comportement, cela doit venir du extract et de l'utilisation de toto[]. au cas où utilise , tu pourra connaitre le tableau de valeurs reçues après la validation du formulaire. Apparemment, toto[] s 'incrémente naturellement et le test (toto[i]) vérifie les clés. Tu obtient donc un résultat prévisible.

  12. #12
    Futur Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par ascito Voir le message
    c marrant comme comportement, cela doit venir du extract et de l'utilisation de toto[]. au cas où utilise , tu pourra connaitre le tableau de valeurs reçues après la validation du formulaire. Apparemment, toto[] s 'incrémente naturellement et le test (toto[i]) vérifie les clés. Tu obtient donc un résultat prévisible.
    Sympa le print_r().

    Plutot qu'un long discourt je vous met les résultat :

    Ligne 0 chochée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [toto] => Array ( [0] => on )
    Ligne 0 et 1 chochées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [toto] => Array ( [0] => on [1] => on )
    Ligne 0 et 2 chochées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [toto] => Array ( [0] => on [1] => on )
    Ligne 0 et 3 chochées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [toto] => Array ( [0] => on [1] => on )
    Ca explique le fait que les cases cochées s'accumulent sur les premières lignes...

  13. #13
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 1
    Points : 1
    Points
    1
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <?php
    echo "<FORM method='POST' action=''>" ;
     
    print_r($_POST);
     
    extract ($_POST) ;
     
     
    echo "<TABLE width=50%>" ;
     
    for ($i=0;$i<10;++$i)
    {
      echo "<TR>
              <TD width=33% align='center'>".$i."</TD>
              <TD width=33% align='center'>
                <INPUT TYPE='text' name='text[]'";
    	    if(!empty($text[$i]))
    		echo "value='".$text[$i]."' />";
    	    else
    		echo " />";
     
         echo     "</TD>
              <TD align='center'> <input type='checkbox' name='toto[".$i."]'";
                if (isset($toto[$i]) && $toto[$i])
                  echo " checked/>" ;
                else
                  echo " />" ;
      echo "  </TD>
            </TR>" ;
    }
     
    echo "</TABLE>" ;
     
    echo "<input type='submit' name='val' value='test' />" ;
     
    echo "</FORM>" ;
    ?>
    Voilà je pense que ça marche bien maintenant.
    J'ai ajouté la fonction isset et empty pour verifier si les parametres envoyé sont definit et ne sont pas vide.

    Et puis au lieu de name="toto[]" , il faut plutot mettre name="toto[".$i."]" pour connaître l'index coché..

  14. #14
    Futur Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2007
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Bien joué !
    Merci beaucoup !

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

Discussions similaires

  1. [Tableaux] Tableau à double entrée de checkbox
    Par r-zo dans le forum Langage
    Réponses: 5
    Dernier message: 28/11/2006, 13h54
  2. [Tableaux] Tableau et formulaire checkbox
    Par djedje37et28 dans le forum Langage
    Réponses: 7
    Dernier message: 14/08/2006, 21h07
  3. [Tableaux] tableau de checkbox
    Par taki_38 dans le forum Langage
    Réponses: 2
    Dernier message: 13/07/2006, 16h51
  4. récupérer un tableau de checkbox
    Par mr.t dans le forum ASP
    Réponses: 3
    Dernier message: 05/04/2005, 16h11
  5. Style d'une ligne d'un tableau et Checkbox
    Par echecetmat dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/01/2005, 15h03

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