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 :

Controle des champs vides - IF ELSE


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Controle des champs vides - IF ELSE
    Bonjour à tous,

    je suis en train de faire une base de données via PHP/Mysql. J'ai fait un formulaire afin de récupérer les informations.

    Je test avec Javascript si les champs sont bien remplis de cette façon

    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
    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
     
    <SCRIPT language="JavaScript">
    <!--
    function ControleVide()
    {
    	if(document.Formulaire.nom_article.value=='') 
    	{
    	alert('Le champ Nom de l\'article ne peut pas rester vide !');
    	document.Formulaire.nom_article.focus();
    	}
    		else if(document.Formulaire.nom_article.value.length>25) // 3
    		{
    		alert('Le champ Nom ne peut pas excéder 25 caractères !');
    		document.Formulaire.nom_article.focus();
    		}
     
    	if(document.Formulaire.description_article.value=='') 
    	{
    	alert('Le champ Description de l\'article ne peut pas rester vide !');
    	document.Formulaire.description_article.focus();
    	}
    		else if(document.Formulaire.description_article.value.length>255) // 3
    		{
    		alert('Le champ Description ne peut pas excéder 255 caractères !');
    		document.Formulaire.description_article.focus();
    		}
     
    	if(document.Formulaire.photo_article.value=='') 
    	{
    	alert('Le champ Lien de la photo ne peut pas rester vide !');
    	document.Formulaire.photo_article.focus();
    	}
     
    	if(document.Formulaire.prix_article.value=='') 
    	{
    	alert('Le champ Prix de l\'article ne peut pas rester vide !');
    	document.Formulaire.prix_article.focus();
    	}
    		else if(isNaN(document.Formulaire.prix_article.value)) 
    		{
    		alert('Le champ Prix de l\'article ne peut être que numérique !');
    		document.Formulaire.prix_article.focus();
    		}
     
    	if(document.Formulaire.poids_article.value=='') 
    	{
    	alert('Le champ Poids de l\'article ne peut pas rester vide !');
    	document.Formulaire.poids_article.focus();
    	}
    		else if(isNaN(document.Formulaire.poids_article.value))
    		{
    		alert('Le champ Poids de l\'article ne peut être que numérique !');
    		document.Formulaire.poids_article.focus();
    		}
     
    		else if(document.Formulaire.poids_article.value.length>5) 
    		{
    		alert('Le champ Poids ne peut pas excéder 5 caractères !');
    		document.Formulaire.poids_article.focus();
    		}
     
    else
    	{
    	document.Formulaire.method = "POST";
    	document.Formulaire.action = "ajouter2.php";
    	document.Formulaire.submit();
    	}
     
    }
    </script>
    Je souhaiterais que tous les champs soit remplis avant de passer dans le ELSE sauf que de cette façon là, il suffit juste que "poids_article" le dernier paramètre soit remplis pour que ça bascule dans ELSE. Je dois avoir un problème avec les else if ou les { }.

    Avez-vous une idée?

    merci par avance

  2. #2
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,

    2 cas de figures:

    1. soit tu veux vérifier les champs et t'arrêter dès qu'un champ ne correspond pas et alors l'idée peut être de faire un return dès qu'un souci est rencontré:
      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
      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
      71
      72
      73
      74
      75
      76
      // JavaScript Document
      function ControleVide()
      {
      	if(document.Formulaire.nom_article.value=='') 
      	{
      	alert('Le champ Nom de l\'article ne peut pas rester vide !');
      	document.Formulaire.nom_article.focus();
      	return;
      	}
      		else if(document.Formulaire.nom_article.value.length>25) // 3
      		{
      		alert('Le champ Nom ne peut pas excéder 25 caractères !');
      		document.Formulaire.nom_article.focus();
      		return;
      		}
       
      	if(document.Formulaire.description_article.value=='') 
      	{
      	alert('Le champ Description de l\'article ne peut pas rester vide !');
      	document.Formulaire.description_article.focus();
      	return;
      	}
      		else if(document.Formulaire.description_article.value.length>255) // 3
      		{
      		alert('Le champ Description ne peut pas excéder 255 caractères !');
      		document.Formulaire.description_article.focus();
      		return;
      		}
      		
      	if(document.Formulaire.photo_article.value=='') 
      	{
      	alert('Le champ Lien de la photo ne peut pas rester vide !');
      	document.Formulaire.photo_article.focus();
      	return;
      	}
       
      	if(document.Formulaire.prix_article.value=='') 
      	{
      	alert('Le champ Prix de l\'article ne peut pas rester vide !');
      	document.Formulaire.prix_article.focus();
      	return;
      	}
      		else if(isNaN(document.Formulaire.prix_article.value)) 
      		{
      		alert('Le champ Prix de l\'article ne peut être que numérique !');
      		document.Formulaire.prix_article.focus();
      		return;
      		}
       
      	if(document.Formulaire.poids_article.value=='') 
      	{
      	alert('Le champ Poids de l\'article ne peut pas rester vide !');
      	document.Formulaire.poids_article.focus();
      	return;
      	}
      		else if(isNaN(document.Formulaire.poids_article.value))
      		{
      		alert('Le champ Poids de l\'article ne peut être que numérique !');
      		document.Formulaire.poids_article.focus();
      		return;
      		}
       
      		else if(document.Formulaire.poids_article.value.length>5) 
      		{
      		alert('Le champ Poids ne peut pas excéder 5 caractères !');
      		document.Formulaire.poids_article.focus();
      		return;
      		}
       
      	//on a réussi à passer partout, on envoie !
      	document.Formulaire.method = "POST";
      	document.Formulaire.action = "ajouter2.php";
      	document.Formulaire.submit();
       
      }
    2. soit tu veux afficher pour chaque zone de saisie la première erreur rencontrée et dans ce cas tu peux utiliser un flag qui note le moindre souci:
      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
      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
      71
      72
      73
      74
      75
      76
      77
      78
      function ControleVide()
      {
        var succes=true;
        if(document.Formulaire.nom_article.value=='') 
      	{
      	alert('Le champ Nom de l\'article ne peut pas rester vide !');
      	document.Formulaire.nom_article.focus();
      	succes=false;
      	}
      		else if(document.Formulaire.nom_article.value.length>25) // 3
      		{
      		alert('Le champ Nom ne peut pas excéder 25 caractères !');
      		document.Formulaire.nom_article.focus();
      		succes=false;
      		}
       
      	if(document.Formulaire.description_article.value=='') 
      	{
      	alert('Le champ Description de l\'article ne peut pas rester vide !');
      	document.Formulaire.description_article.focus();
      	succes=false;
      	}
      		else if(document.Formulaire.description_article.value.length>255) // 3
      		{
      		alert('Le champ Description ne peut pas excéder 255 caractères !');
      		document.Formulaire.description_article.focus();
      		succes=false;
      		}
      		
      	if(document.Formulaire.photo_article.value=='') 
      	{
      	alert('Le champ Lien de la photo ne peut pas rester vide !');
      	document.Formulaire.photo_article.focus();
      	succes=false;
      	}
       
      	if(document.Formulaire.prix_article.value=='') 
      	{
      	alert('Le champ Prix de l\'article ne peut pas rester vide !');
      	document.Formulaire.prix_article.focus();
      	succes=false;
      	}
      		else if(isNaN(document.Formulaire.prix_article.value)) 
      		{
      		alert('Le champ Prix de l\'article ne peut être que numérique !');
      		document.Formulaire.prix_article.focus();
      		succes=false;
      		}
       
      	if(document.Formulaire.poids_article.value=='') 
      	{
      	alert('Le champ Poids de l\'article ne peut pas rester vide !');
      	document.Formulaire.poids_article.focus();
      	succes=false;
      	}
      		else if(isNaN(document.Formulaire.poids_article.value))
      		{
      		alert('Le champ Poids de l\'article ne peut être que numérique !');
      		document.Formulaire.poids_article.focus();
      		succes=false;
      		}
       
      		else if(document.Formulaire.poids_article.value.length>5) 
      		{
      		alert('Le champ Poids ne peut pas excéder 5 caractères !');
      		document.Formulaire.poids_article.focus();
      		succes=false;
      		}
       
      if (succes)
      	{
      	document.Formulaire.method = "POST";
      	document.Formulaire.action = "ajouter2.php";
      	document.Formulaire.submit();
      	}
       
      }


    ERE

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    j'ai opé pour la deuxième, ça marche nikel

    Grand MERCI à toi l'ami

  4. #4
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Citation Envoyé par Jamaboss Voir le message
    j'ai opé pour la deuxième, ça marche nikel

    Grand MERCI à toi l'ami
    Ben moi j'aurais opté pour la première !
    Ton utilisateur va craquer s'il a dix erreurs: 10 boites d'alerte !

    Dans ce cas tu devrais plutôt affiché le message à côté ou au dessus de la zone concernée.

    ERE

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    +1000 ER

    mieux vaut concatener un message d'erreur et le faire apparaitre dans un div ...
    voire modifier le background-color des champs incriminés.
    Comme ça un seul alert et une recap qui reste visible sur le formulaire

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

Discussions similaires

  1. [AC-2010] Controle des champs vides dans un formulaire
    Par prosper02 dans le forum VBA Access
    Réponses: 3
    Dernier message: 06/07/2013, 00h04
  2. Impossible d'insérer des champs vides
    Par shkyo dans le forum Requêtes
    Réponses: 5
    Dernier message: 21/08/2006, 16h29
  3. Importance des champs vides
    Par tedparker dans le forum Access
    Réponses: 2
    Dernier message: 25/07/2006, 17h00
  4. affichage des champs vides
    Par nada83 dans le forum Access
    Réponses: 5
    Dernier message: 02/05/2006, 15h33
  5. [SELECT] Faire un select avec des champs vides
    Par MinsK dans le forum Langage SQL
    Réponses: 1
    Dernier message: 09/08/2005, 00h05

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