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 :

Groupe de checkbox = dernier élément undefined


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de gibet_b
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 292
    Points : 296
    Points
    296
    Par défaut Groupe de checkbox = dernier élément undefined
    Salut à tous,

    J'ai un petit problème qui est peut-être aussi bête que moi.

    Dans un formulaire que je transmets en post, j'ai ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="checkbox" name="cb1[]" value="1" checked> Lecture
    <input type="checkbox" name="cb1[]" value="2"> Ecriture
    <input type="checkbox" name="cb1[]" value="3"> Modification
    Si sur la page de destination (la page indiqué dans le action du formulaire), je fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print_r($_POST['cb1']);
    J'obtiens comme affichage :

    Array ( [0] => toto [1] => tata [2] => undefined )
    Ça c'est dans le cas où j'ai coché les trois cases, mais en fait, si j'en coche deux, la deuxième est aussi en undefined. Le seul cas où je n'ai pas de mention de undefined dans le print_r, c'est si j'en coche une seule.

    C'est pareil si je fais un echo $_POST[cb1][2].

    Je viens de découvrir en rédigeant ce message que si je mets un checked dans chaque input, je n'ai pas plus le problème... le truc c'est que je voudrais que ce soit décoché par défaut.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Bonjour,

    D'ou sortent les valeurs "toto", "tata" et "undifined" ?

  3. #3
    Membre actif Avatar de gibet_b
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 292
    Points : 296
    Points
    296
    Par défaut
    oups, c'est que j'ai voulu changer les valeurs des inputs à un endroit poru faire plus sérieux sur le forum, et que j'ai pas changé partout...

    Donc, d'un côté, j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="checkbox" name="cb1[]" value="1" checked> Lecture
    <input type="checkbox" name="cb1[]" value="2"> Ecriture
    <input type="checkbox" name="cb1[]" value="3"> Modification
    et j'obtiens ça lorsque je coche les trois cases :

    Array ( [0] => 1 [1] => 2 [2] => undefined )
    Et donc, j'oubliais, si je mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="checkbox" name="cb1[]" value="1" checked> Lecture
    <input type="checkbox" name="cb1[]" value="2" checked> Ecriture
    <input type="checkbox" name="cb1[]" value="3" checked> Modification
    J'obtiens bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [0] => 1 [1] => 2 [2] => 3 )
    Ou même :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [0] => 1 [1] => 2 )
    Si je décoche la dernière case... Ça marche très bien, sauf que je voudrais que seule la première case soit caché à l'affichage du formulaire.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je ne vois pas bien toujours d'ou vient le "undefined"
    Tu fais un traitement sur ton $_POST ?

    Un peu de HTML sinon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="cb1[]" value="1" checked="checked" /> Lecture

  5. #5
    Membre actif Avatar de gibet_b
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 292
    Points : 296
    Points
    296
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Je ne vois pas bien toujours d'ou vient le "undefined"
    Tu fais un traitement sur ton $_POST ?

    Un peu de HTML sinon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="cb1[]" value="1" checked="checked" /> Lecture
    Justement, moi non plus je ne vois pas bien d'où vient ce "undefined"... Je ne fais aucun traitement sur la page d'affichage, juste le print_r

    Et j'ai modifié comme tu m'as proposé, ça fait toujours pareil.

  6. #6
    Membre actif Avatar de gibet_b
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 292
    Points : 296
    Points
    296
    Par défaut
    J'avance...

    En fait, j'avais omis quelque chose (honte sur moi) : j'ai autre chose dans mes input :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OnClick="this.value=check_lecture('cb1[]')"
    sur la première case à cocher.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OnClick="this.value=check_ecriture('cb1[]')"
    sur la deuxième case à cocher.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OnClick="this.value=check_modification('cb1[]')"
    sur la troisième case à cocher.

    Et mes fonctions JS :

    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
    	<script language="JavaScript">
    		function check_lecture(checkboxname){
    			var tab = document.getElementsByName(checkboxname);
    			for (i = 1; i<3; ++i){
    				if (tab[i].checked == true && tab[0].checked == false)
    					tab[i].checked = false;
    			}
    		}
     
    		function check_ecriture(checkboxname){
    			var tab = document.getElementsByName(checkboxname);
    			if (tab[0].checked == false && tab[1].checked == true)
    					tab[0].checked = true;
    			if (tab[2].checked == true && tab[1].checked == false)
    					tab[2].checked = false;
    		}
     
    		function check_modification(checkboxname){
    			var tab = document.getElementsByName(checkboxname);
    			for (i = 0; i<3; i++){
    				if (tab[i].checked == false && tab[2].checked == true){
    					tab[i].checked = true;
    				}
    			}
    		}
    	</script>
    Si j'enlève les événements OnClick, ça fonctionne. Une idée ?

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OnClick="this.value=check_lecture('cb1[]')"
    Tu donnes a ta case la valeur retournée par ta fonction ... mais ta fonction n'a pas de valeur de retour.

    J'ecrirais simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OnClick="check_lecture('cb1[]')"

  8. #8
    Membre actif Avatar de gibet_b
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 292
    Points : 296
    Points
    296
    Par défaut
    Je suis un méga boulet : j'ai fait un copier-coller sans faire gaffe au code, sans me demander 2 sec ce que ça voulait dire (sinon, j'aurai capter le problème), même sur un bout de code de trois mots...

    J'ai honte...

    1000 merci !

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

Discussions similaires

  1. validation form en fonction de plusieurs groupe de checkbox
    Par Steph777 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/01/2006, 12h00
  2. [PL/SQL] Curseur - Récupération du dernier élément
    Par dupont166 dans le forum Oracle
    Réponses: 5
    Dernier message: 27/12/2005, 04h57
  3. clause GROUP BY & récupérer derniere valeur
    Par Stef784ever dans le forum Requêtes
    Réponses: 6
    Dernier message: 23/11/2005, 17h40
  4. for-each et dernier élément
    Par neptune dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 08/09/2005, 14h53
  5. Comment récupérer l'index du dernier élément inséré ?
    Par Didier100 dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/07/2004, 22h41

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