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 Java Discussion :

Validation de données de formulaire


Sujet :

Langage Java

  1. #1
    Membre régulier Avatar de tus01
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 191
    Points : 80
    Points
    80
    Par défaut Validation de données de formulaire
    Bonjour,

    J'ai créé un formulaire de configuration permettant l'extraction de données d'un fichier plat.
    En gros, mes fichiers plats contiennent plusieurs champs, et l'idée, étant donné que l'emplacement des champs n'est pas le même d'un fichier plat à un autre, c'est de créer un configurateur me permettant de définir l'emplacement de chaque champ.

    Mes lignes de fichiers plats se comportent alors comme un tableau dans lequel je vais définir un indice pour chaque champ.

    L'idée au final est donc d'effectuer un contrôle sur les indices définis pour ne pas se retrouver avec un champ sur le même indice.

    J'ai donc une variable pour chacun des 10 champs présents. Si le champ 1 est à la position 2, alors aucun autre champ ne pourra occuper cette position. Et au moment de ce test de cohérence, j'ai un peu de mal à trouver mon chemin.

    Je suis tout d'abord passé par 2 tableaux, en mettant dans le premier les valeurs entrées par l'utilisateur. J'utilise donc le deuxième tableau pour recopier les valeurs du premier, en vérifiant que la donnée n'est pas présente.

    Voilà un bout de code, j'ai l'impression que je me complique un peu la vie alors si vous avez des suggestions, n'hésitez pas:

    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
     
    // Déclaration de la liste des champs actifs pour générer le message d'erreur
    String[] champsArticles = new String[7];
     
    // Création des deux tables de travail
    int[] enregistrements1 = new int[7];
    int[] enregistrements2 = new int[7];
     
     
    int a = 0;
    //Si le champ est présent (checkbox) alors on ajoute sa définition dans la table des enregistrements, et dans la table des messages
    if (caElem.getPresenceCodeArticle()) {
    	enregistrements1[a] = Integer.parseInt(caElem.getPCodeArticle());
    	champsArticles[a] = "code article";
    	a++;
    }
    if (caElem.getPresenceLibelleArticle()) {
    	enregistrements1[a] = Integer.parseInt(caElem.getPLibelleArticle());
    	champsArticles[a] = "libellé article";
    	a++;
    }
    if (caElem.getPresenceContenant()) {
    	enregistrements1[a] = Integer.parseInt(caElem.getPContenant());
    	champsArticles[a] = "contenant";
    	a++;
    }
    if (caElem.getPresenceContenance()) {
    	enregistrements1[a] = Integer.parseInt(caElem.getPContenance());
    	champsArticles[a] = "contenance";
    	a++;
    }
    if (caElem.getPresenceConditionnement()) {
    	enregistrements1[a] = Integer
    			.parseInt(caElem.getPConditionnement());
    	champsArticles[a] = "conditionnement";
    	a++;
    }
    if (caElem.getPresenceTypeConditionnement()) {
    	enregistrements1[a] = Integer.parseInt(caElem
    			.getPTypeConditionnement());
    	champsArticles[a] = "type de conditionnement";
    	a++;
    }
    if (caElem.getPresenceDegre()) {
    	enregistrements1[a] = Integer.parseInt(caElem.getPDegre());
    	champsArticles[a] = "degre";
    }
     
    boolean error = false;
    for (int i = 0; i < enregistrements1.length; ++i) {
    	for (int j = 0; j > enregistrements2.length; ++j) {
    		if (enregistrements1[i] == enregistrements2[j]) {
    			error("Les champs " + champsArticles[i] + " et "
    					+ champsArticles[j] + " ont la même position !");
    			error = true;
    		}
    	}
    	if (error == false)
    		enregistrements2[i] = enregistrements1[i];
    }
    return error;
    Je ne sais pas si mon code est bien clair, enfin je l'espère. Pour le moment aucune erreur n'est remontée, même lorsque deux champs sont à la même position. Je pense que j'ai du faire quelque chose de pas bien correct mais je n'arrive pas à trouver où.

    Merci par avance pour votre aide,

    Thibault

  2. #2
    Membre régulier Avatar de tus01
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 191
    Points : 80
    Points
    80
    Par défaut
    Alors problème résolu.
    Effectivement je me prenais un peu trop la tête avec des tables. L'utilisation des Array List est bien plus simple et plus adaptée à ma problématique. Voici le code corrigé:
    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
    		ArrayList champsArticles = new ArrayList();
    		ArrayList enregistrements1 = new ArrayList();
    		ArrayList enregistrements2 = new ArrayList();
     
    		int a = 0;
    		if (caElem.getPresenceCodeArticle()) {
    			enregistrements1.add(Integer.parseInt(caElem.getPCodeArticle()));
    			champsArticles.add("code article");
    			a++;
    		}
    		if (caElem.getPresenceLibelleArticle()) {
    			enregistrements1.add(Integer.parseInt(caElem.getPLibelleArticle()));
    			champsArticles.add("libellé article");
    			a++;
    		}
    		if (caElem.getPresenceContenant()) {
    			enregistrements1.add(Integer.parseInt(caElem.getPContenant()));
    			champsArticles.add("contenant");
    			a++;
    		}
    		if (caElem.getPresenceContenance()) {
    			enregistrements1.add(Integer.parseInt(caElem.getPContenance()));
    			champsArticles.add("contenance");
    			a++;
    		}
    		if (caElem.getPresenceConditionnement()) {
    			enregistrements1
    					.add(Integer.parseInt(caElem.getPConditionnement()));
    			champsArticles.add("conditionnement");
    			a++;
    		}
    		if (caElem.getPresenceTypeConditionnement()) {
    			enregistrements1.add(Integer.parseInt(caElem
    					.getPTypeConditionnement()));
    			champsArticles.add("type de conditionnement");
    			a++;
    		}
    		if (caElem.getPresenceDegre()) {
    			enregistrements1.add(Integer.parseInt(caElem.getPDegre()));
    			champsArticles.add("degré");
    		}
     
    		int occurence;
    		boolean codeRetour = true;
     
    		try {
    			for (int i = 0; i < enregistrements1.size(); ++i) {
    				occurence = enregistrements2.indexOf(enregistrements1.get(i));
    				success("boucle for: " + champsArticles.get(i));
    				if (occurence != -1) {
    					error("Les champs " + champsArticles.get(i) + " et "
    							+ champsArticles.get(occurence)
    							+ " ne peuvent pas avoir la même position !");
    					codeRetour = false;
    				} else {
    					enregistrements2.add(enregistrements1.get(i));
    				}
    			}
    		} catch (ArrayIndexOutOfBoundsException e) {
    			// TODO Auto-generated catch block
    			error(e.getMessage());
    		}
     
    		return codeRetour;

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

Discussions similaires

  1. Validation par email de données par formulaire
    Par cloridriks dans le forum Langage
    Réponses: 3
    Dernier message: 27/08/2010, 09h03
  2. [1.x] Validation des données d'un formulaire créé 'à la main'
    Par thecanea dans le forum Symfony
    Réponses: 2
    Dernier message: 12/11/2009, 11h08
  3. [MySQL] Sécuriser les données du formulaire : validation du code
    Par Jarodd dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/02/2009, 15h00
  4. Valider les données d'un formulaire
    Par bdminc dans le forum Langage
    Réponses: 3
    Dernier message: 20/09/2007, 17h13
  5. Réponses: 5
    Dernier message: 01/10/2006, 13h48

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