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

JavaScript Discussion :

Verification des checkboxs


Sujet :

JavaScript

  1. #1
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 201
    Points : 140
    Points
    140
    Par défaut Verification des checkboxs
    Bonsoir, je suis confronté à un petit prb de verification de checkbox.

    En effet en fonction des résultats d'une table mysql, j'affiche des checkbos dans un formulaire que je control avec une fonction javascript.

    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
     
    while($ligne_res_instrument=mysql_fetch_object($res_instrument)) // boucle
    										{
     
    											echo'<li><input type="checkbox" name="instruments[]" id="instruments[]" value="'.$ligne_res_instrument->id_instrument.'" multiple>';
    											if($_SESSION["langue_session"]=="fra")
    											{
    												echo $ligne_res_instrument->libelle_instrument_fra;
    											}
    											else
    											{
    												echo $ligne_res_instrument->libelle_instrument_ang;
    											}
    											echo'</li>';
    										}
    Mon fichier js qui verifie mon formulaire fonctionne très bien a part le test pour verifier que au mois une checkbox est coché.

    mon test est le suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if(document.modification.instruments.value == "") 
    		{ 
            alert ('veuillez entrer au moins un instrument'); 
            document.modification.instruments.focus(); 
            return false; 
        	}
    le problème est qu'il ne me retourne rien si elle n'est pas coché. Je pense que je ne m'y prned pas de la bonne manière, merci de m'indiquer si je me plante complet.
    ++
    La programmation, c'est tout un art

  2. #2
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    deja essayes de ne pas mettre le meme id a differents elements

    ensuite, fais un getElementsByTagName ou un getElementsByName et ensuite tu boucle sur le tableau pour voir si il y en a au moins un qui a son checked à true.
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  3. #3
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 201
    Points : 140
    Points
    140
    Par défaut
    je ne comprend pas trop le principe, car pour boucler sur le tableau, je le fais en javascript ou en php, car mes checkboxs sont affiché dans un while.

    Je dois faire une initialisation de variable avant mon while
    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
     
    $i=0;
    										while($ligne_res_genre=mysql_fetch_object($res_genre)) // boucle
    										{
     
    											echo'<li><input type="checkbox" name="genres[]" id="genres['.$i.']" value="'.$ligne_res_genre->id_genre.'" multiple>';
    											if($_SESSION["langue_session"]=="ang")
    											{
    												echo $ligne_res_genre->libelle_genre_ang;
    											}
    											else
    											{
    												echo $ligne_res_genre->libelle_genre_fra;
    											}
    											echo'</li>';
    											$i++;
    										}
    et je fais mon stest en javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if(document.getElementsByName(instrument[]).checked == true) 
    		{ 
            alert ('veuillez entrer au moins un instrument'); 
            document.modification.instruments.focus(); 
            return false; 
        	}
    j'ai peur de ne pas avoir trop saisie, ou alors il faut faire un for en javascript, masi alors je boucle sur quoi et sur combien de passage

    ....



    merci
    La programmation, c'est tout un art

  4. #4
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    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
     
    var tablo = document.getElementsByName("instrument[]");
    var good = false;
    var i = 0;
    do{
          good = tablo[i].checked;
          i++;
    }while(!good && i < tablo.length);
    if(!good){
       alert ('veuillez entrer au moins un instrument');
       tablo[0].focus();
    }
    return good;
    ca devrais marcher
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  5. #5
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 201
    Points : 140
    Points
    140
    Par défaut
    eu désolé je ne comprend pas sa ne fonctionne pas quand je post mon formulaire et que je ne coche pas de checkbox, il ne m'affiche aucune erreur.

    j'ai le code php suivant :

    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
     
    $i=0;
    										while($ligne_res_instrument=mysql_fetch_object($res_instrument)) // boucle
    										{
     
    											echo'<li><input type="checkbox" name="instruments['.$i.']" id="instruments[]" value="'.$ligne_res_instrument->id_instrument.'" multiple>';
    											if($_SESSION["langue_session"]=="fra")
    											{
    												echo $ligne_res_instrument->libelle_instrument_fra;
    											}
    											else
    											{
    												echo $ligne_res_instrument->libelle_instrument_ang;
    											}
    											echo'</li>';
    											$i++;
    										}
    et j'ai donc mis ton code dans ma fonction
    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
     
    var tablo = document.getElementsByName("instrument[]"); 
    		var good = false; 
    		var i = 0; 
    		do
    		{ 
          		good = tablo[i].checked; 
          		i++; 
    		}
    		while(!good && i < tablo.length); 
    		if(!good)
    		{ 
       		alert ('veuillez entrer au moins un instrument'); 
       		tablo[0].focus(); 
    		} 
    		return good;
    rien ne m'est retourné je ne vois pas trop
    La programmation, c'est tout un art

  6. #6
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    le code js est dans une fonction ?
    si non il faut et ensuite faire un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form ... onsubmit="retrun lafonction()" ...>
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  7. #7
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 201
    Points : 140
    Points
    140
    Par défaut
    c'etais deja fait sa

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form name="modification" method="post" action="index2.php?lien_menu='.$_GET['lien_menu'].'&contenu=mon_profil_consult" onSubmit="return validation_form_modif();">
    ma fonction est bien appellé puisque je test des champ text avant les checkboxs et sa fonctionne bien
    La programmation, c'est tout un art

  8. #8
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    arf
    met le $i dans l'id, pas dans le name ...
    et met un s a instrument[] dans le getElementsByName
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  9. #9
    Membre habitué
    Inscrit en
    Mai 2004
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 201
    Points : 140
    Points
    140
    Par défaut
    Ik merci sa fonctionne bien par contre j'ai une autres series de checkboxs a verifié, cette fois c'est :

    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
     
    $j=0;
    										while($ligne_res_genre=mysql_fetch_object($res_genre)) // boucle
    										{
     
    											echo'<li><input type="checkbox" name="genres[]" id="genres['.$j.']" value="'.$ligne_res_genre->id_genre.'" multiple>';
    											if($_SESSION["langue_session"]=="ang")
    											{
    												echo $ligne_res_genre->libelle_genre_ang;
    											}
    											else
    											{
    												echo $ligne_res_genre->libelle_genre_fra;
    											}
    											echo'</li>';
    											$j++;
    										}
    Donc je me suis dis je v reprendre ce que tu as fais pour instruments et l'adapté pour les genres

    donc je declare une variable compteur $j

    et dans le js, je copie ton bout de code et le met au dessus en changeant le nom des variables.

    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
     
     
    // test sur les genres
    		var tablo2 = document.getElementsByName("genres[]"); 
    		var good2 = false; 
    		var j = 0; 
    		do
    		{ 
          		good2 = tablo2[j].checked; 
          		j++; 
    		}
    		while(!good2 && j < tablo2.length); 
    		if(!good2)
    		{ 
       		alert ('veuillez entrer au moins un genre'); 
       		tablo2[0].focus(); 
    		} 
    		return good2;
    Le problème est qu'il me tes que la deuxième series, a savoir les instrument, mais les genres, il les zapent.

    ne serait ce pas comme sa q'on fait
    La programmation, c'est tout un art

  10. #10
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    ben si t as un return good avant de commencer ce bout d code la, tu n'y arrivera jamais

    ne fais pas ton return des premieres checkbox et fais un return comme ca a la fin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    return good && good2;
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

Discussions similaires

  1. [VBA-E] Question à propos des checkbox
    Par Timfg dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/04/2005, 15h09
  2. [C#] Tableau généré contenant des checkbox
    Par la_muraille dans le forum ASP.NET
    Réponses: 3
    Dernier message: 04/04/2005, 12h16
  3. Cochage des checkbox d'un dbgrid
    Par kose dans le forum Bases de données
    Réponses: 1
    Dernier message: 25/01/2005, 16h26
  4. boucler sur des checkboxes
    Par El Saigneur dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 09/10/2004, 08h27
  5. Verification des champs d'un formulaire
    Par 164emie dans le forum ASP
    Réponses: 5
    Dernier message: 19/11/2003, 14h03

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