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 :

V�rification formulaire contenant tableaux variables text et checkbox


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    91
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 77
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 91
    Par d�faut V�rification formulaire contenant tableaux variables text et checkbox
    Bonjour tout le monde,
    Je me bagarre depuis quelque temps avec une fonction de v�rification d'un formulaire.
    Cette fonction ne me renvoie pas les manques des champs qui doivent �tre renseign�s et m'envoie sur la page suivante avec les erreurs bien sur !
    Voici le script
    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
    function verif()
    {
    var nberreur=0;
    var texterreur="";
    var inputList=document.forms['identi'].elements;
    for (unInput in inputList)
    {
    var x = document.forms['identi'].elements[unImput];
    if (x.value==0 || x.value =='' || x.value==false)
    {
    texterreur+= "Le champ "+ x.name "+n\'a pas été rempli \n";
    nberreur++;
    }
    }
    if (nberreur != 0)
    {
    alert(texterreur);
    return false;
    }
    else
    {
    return true;
    }
    }
    et le code html issu de firebug puisque le tout est en php
    Code HTML : 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
    <div id="formulea">
    <form id="ident" onsubmit="return verif(this)" action="validear.php" method="POST" name="identi">
    <input type="hidden" value="4 726,00" name="prix">
    <font size="4" face="Verdana" color="#800000"> Liste des passagers </font>
    <br>
    <div id="formulec" class="td_formule">
    <fieldset style="border: ridge #0033FF">
    <legend align="top">Adultes</legend>
    <input id="civila" type="checkbox" value="Mr" name="civil[]">
    <label>Monsieur</label>
    <input id="civila" type="checkbox" value="Mme" name="civil[]">
    <label>Madame</label>
    <label> Nom : </label>
    <input id="nompas" type="text" size="15" value="" name="pasnom[]">
    <label> Prénom : </label>
    <input id="pnompas" type="text" size="15" value="" name="pasprenom[]">
    <label> Date de naissance : </label>
    <input id="naispas" type="text" size="10" value="" name="pasnais[]">
    JJ/MM/AAAA
    <br>
    </fieldset>
    <br>
    <font size="4" face="Verdana" color="#800000"> Vos coordonnées </font>
    <br>
    <div id="identite" class="td_formule">
    <fieldset style="border: ridge #0033FF">
    <legend align="top">Votre identité</legend>
    <input id="civilc" type="checkbox" value="Mr" name="civili">
    <label>Monsieur</label>
    <br>
    <input id="civilc" type="checkbox" value="Mme" name="civili">
    <label>Madame</label>
    <br>
    <label> Votre nom : </label>
    <br>
    <input id="coodnom" type="text" value="" size="15" name="nomcood">
    <br>
    <label> Votre prénom : </label>
    <br>
    <input id="coodpnom " type="text" value="" size="15" name="pnomcood">
    <br>
    <label>Numéro, rue ou lieu-dit : </label>
    <br>
    <input id="coodrue'" type="text" value="" size="30" name="rue">
    <br>
    <label> Ville : </label>
    <br>
    <input id="coodville" type="text" value="" size="25" name="villeco">
    <br>
    <label> Code postal: </label>
    <br>
    <input id="coodpos" type="text" value="" size="5" name="codepost">
    <br>
    <label> Adresse mail valide : </label>
    <br>
    <input id="coodmail" type="text" value="" size="30" name="courie">
    </fieldset>
    </div>
    </div>
    </form>
    </div>
    <table width="1000" align="center">
    <tbody>
    <tr>
    <td align="center">
    <input type="submit" value="VALIDEZ VOTRE COMMANDE">
    </td>
    </tr>
    </tbody>
    </table>

    Petites explications compl�mentaires concernant la partie Adultes.
    Je ne sais pas � l'avance combien d'adultes il y aura puisque le nombre a �t� indiqu� dans la page pr�c�dente.
    Je pourrai �galement avoir d'autres groupes d'inscrite (Enfants, personnes �g�es) qui ne figurent pas dans cet exemple de code g�n�r�.

    Alors si quelqu'un pouvait me donner un coup de main, cela serait sympa.
    Je pr�cise que j'ai fait de multiples tentatives avec des scripts diff�rents pris (comme celui-ci d'ailleurs) sur des r�ponses donn�es � d'anciennes questions sur le sujet, ou des scripts de ma cr�ation mais que je ne suis arriv� � rien !
    Un grand merci par avance

  2. #2
    Membre Expert Avatar de Barsy
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Octobre 2007
    Messages
    1 484
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 484
    Par d�faut
    Plusieurs erreurs dans ton code :

    - Il faut que ton submit soit dans ton form.
    - Dans la ligne ""Le champ " + x.name "+n\'a pas �t� rempli \n";" il y a une inversion entre le guillemet et le +
    - Tu as �crit unImput au lieu de unInput

    �a devrait �tre bon je crois

  3. #3
    Membre confirm�
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    91
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 77
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 91
    Par d�faut
    Merci pour ces bons conseils, comme quoi plusieurs paires d'yeux sont parfois tr�s utiles.
    Mais il reste encore quelques probl�mes � r�soudre :
    Pourquoi me met-il 3 fois le m�me champs qui n'est pas renseign�
    Il ne prends pas en compte les champs Checkbox dans les erreurs !

  4. #4
    Membre Expert Avatar de Barsy
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Octobre 2007
    Messages
    1 484
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 484
    Par d�faut
    Tu devrais utiliser des radiobutton plut�t que des checkbox pour les champs de s�lection. Sinon, cela veut dire que l'on peut �tre � la fois Monsieur et Madame.

    le code suivant permettrai dans ton cas de tester les radiobutton

    Code javascript : 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
    function verif()
    {
    	var nberreur=0;
    	var texterreur="";
    	var inputList=document.forms['identi'].elements;
    	var isChecked;
    	var lastRadioName = "";
    	for (unInput in inputList)
    	{
    		var x = document.forms['identi'].elements[unInput];
    		if (x.type == "radio" && lastRadioName != x.name)
    		{
    			lastRadioName = x.name;
    			isChecked = false;
    			for (var i = 0; i < document.forms['identi'][x.name].length; i++)
    			{
    				if (document.forms['identi'][x.name][i].checked)
    				{
    					isChecked = true;
    					break;
    				}
    			}
    			if (!isChecked)
    			{
    				texterreur+= "Le champ "+ x.name + "n\'a pas été rempli \n";
    				nberreur++;
    			}
    		}
    		else if (x.value == 0 || x.value =='' || x.value==false)
    		{
    			texterreur+= "Le champ "+ x.name + "n\'a pas été rempli \n";
    			nberreur++;
    		}
    	}
    	if (nberreur != 0)
    	{
    		alert(texterreur);
    		return false;
    	}
    	else
    	{
    		return true;
    	}
    }

    il suffit de remplacer type="checkbox" par type="radio".

    Par contre, une remarque, en HTML il ne faut pas utiliser le m�me id pour deux �l�ments diff�rents.

  5. #5
    Membre confirm�
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    91
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 77
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 91
    Par d�faut
    Bonjour,

    Cela marche bien si je n'ai qu'une personne par cat�gorie (Adulte, enfant, personne �g�e)
    Mais ne donne pas les erreurs pour les autres.
    Je parle naturellement des checkbox ! parce que pour les text �a fonctionne pour tous

  6. #6
    Membre Expert Avatar de Barsy
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Octobre 2007
    Messages
    1 484
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 484
    Par d�faut
    Il ne faut pas donner le m�me "name" � plusieurs radiobutton qui serait dans des groupes diff�rents. Sinon, tu ne pourras s�lectionner qu'un seul d'entre eux sur toute ta page.
    Par contre les radiobutton d'un m�me groupe doivent avoit le m�me name.

    C'est � dire que le name doit �tre "civilAdulte[]", "civilEnfant[]"...

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�cup�rer un texte saisi dans un formulaire dans une variable
    Par cyberlp dans le forum G�n�ral JavaScript
    R�ponses: 6
    Dernier message: 02/07/2009, 10h52
  2. Actualiser une zone de texte contenant une variable
    Par moromain dans le forum VBA Access
    R�ponses: 2
    Dernier message: 29/06/2007, 09h11
  3. R�ponses: 2
    Dernier message: 29/11/2006, 14h49
  4. [Tableaux] Variable issues d'un formulaire
    Par Agrumes dans le forum Langage
    R�ponses: 6
    Dernier message: 06/07/2006, 16h46
  5. [Tableaux] Variable de type array dans un formulaire
    Par ThAOTh dans le forum Langage
    R�ponses: 3
    Dernier message: 14/03/2006, 17h49

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