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

Servlets/JSP Java Discussion :

JSP et JavaScript | nombre variable de données à valider


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2010
    Messages : 36
    Points : 40
    Points
    40
    Par défaut JSP et JavaScript | nombre variable de données à valider
    Bonsoir à tous,

    J'ai dans mon projet une page JSP qui permet d'ajouter à la BD une entrée.
    Lorsque le bouton ajouter est pesé, un fichier javascript est appelé et il valide les différents champs du formulaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form id="formePrincipale" action="<%=appRoot%>/Directive" method="post" onsubmit="return validerFormulaireBP(this)">
    Dans un des onglet de la page, j'ai un bouton servant à ajouter des inputs (nom et description par exemple).
    Dans mon jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" id="button" value="Insérer un document" onclick="addFile(this.value)"/>
    Extrait du code JS appelé par le bouton (Pourquoi un Array? Parce que l'étudiant ayant débuté le projet l'as fait ainsi et que je veux faire fonctionner le code avant de l'optimiser.)
    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
    numeroDoc++;
      var section = document.getElementById("contenu_onglet2");
     
      var label = "Document " + numeroDoc + " : ";
      var nom = "Nom : ";
     
      // Creation des inputs
      var inputFile = new Array();  // Sera un input file
      var inputText = new Array(); // Sera un input text
     
      inputFile[0] = document.createElement("input");
      inputFile[0].type= "file";
      inputFile[0].name= "doc";
      inputFile[0].id= "doc" + numeroDoc;
     
      inputText[0] = document.createElement("input");
      inputText[0].type= "text";
      inputText[0].name= "nom";
      inputText[0].id= "nom" + numeroDoc;
    Le bouton peut être pesé autant de fois que voulu mais tous les champs doivent être remplit. On aura donc : doc1 nom1 doc2 nom2 doc3 nom3...

    Ma question est donc : comment faire le tout pour que dans mon javascript je puisse tout valider comme un tableau de données? Devrais-je faire une boucle dans mon JS? Mes inputs devraient-ils tous avoir le même noms (donc retirer leur numéro)?

    J'attend vos solutions avec impatience
    Merci

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Bouton "pesé" = "cliqué" ? (je suppose)

    Tu veux faire du file upload ?

    J'ai du mal à te comprendre ... pourrais-tu être plus précis dans la fonctionnalité recherchée ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2010
    Messages : 36
    Points : 40
    Points
    40
    Par défaut
    Oui pesé = cliqué (désolé pour le Québecisme)

    Après y avoir réfléchit alors que j'écrivais ma réponse, j'ai compris la complexité reliée au file upload par une application Web. (Comment le stocker de façon locale sur le serveur, pour la base de donnée, où dans l'arborescence, etc. ) Je vais en glisser un mot à mon superviseur à savoir comment cela sera implémenté au final.

    D'ici là, admettons que les fichiers et images sont localement sur l'ordinateur.
    Je clique sur le bouton permettant d'ajouter les deux inputs (doc1 et nom1).
    Dans doc1, je charge le chemin d'accès (qui sera conservé dans la BD) et rentre le nom du document. Je peux cliquer autant de fois que voulues pour ajouter autant d'input que nécessaire.

    Lorsque je clique sur valider. Je veux pour le moment que mon JS valide si tous les champs doc# et nom# ne sont pas vides. Ma question est donc : comment faire pour passer au javascript (ou qu'il ai chercher) toutes les données individuellement via un tableau de donnée ou une boucle pour valider qu'ils ne sont pas vide?

    En espérant avoir été assez clair

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    A ta place, j'utiliserais toujours le même nom de champ (pas de séquence), c'est plus facile à gérer côté servlet, tu fais un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String[] files = request.getParameterValues("file");
    String[] desc = request.getParameterValues("description");
    tu as toujours la correspondance file[i] avec desc[i]...
    Tu peux t'inspirer de ce code
    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
     
    <html>
    <head>
    <script>
     
    function addRow()
    {
      var tbl = document.getElementById("files");
      var row = tbl.insertRow(tbl.rows.length);
      var cell1 = row.insertCell(0);
      var inp1 = document.createElement("input");
      inp1.setAttribute("type", "file");
      inp1.setAttribute("name", "file");
      cell1.appendChild(inp1);
     
      var cell2 = row.insertCell(1);
      var inp2 = document.createElement("input");
      inp2.setAttribute("type", "text");
      inp2.setAttribute("name", "description");
      cell2.appendChild(inp2);
    }
     
    function validateAll()
    {
      var files = document.getElementsByName("file");
      var descriptions = document.getElementsByName("description");
     
      for (var i = 0; i < files.length; i++)
      {
        if (files[i].value == "")
        {
          alert("Ligne " + (i+1) + " : Vous n'avez pas saisit le chemin");
          files[i].focus();
          break;
        }
        if (descriptions[i].value == "")
        {
          alert("Ligne " + (i+1) + " : Vous n'avez pas saisit la description");
          descriptions[i].focus();
          break;
        }
      }
    }
    </script>
    </head>
     
    <body>
     
    <form>
    <input type="button" value="Ajouter" onclick="addRow()"/>
    <input type="button" value="Valider" onclick="validateAll()"/>
    <table id="files" border=1 width=500>
    <tr>
    <td>Chemin</td>
    <td>Description</td>
    </tr>
    </table>
    </form>
    </body>
    </html>
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. [PHP 5.3] Nombre variable de données liées
    Par Seidris dans le forum Langage
    Réponses: 2
    Dernier message: 20/12/2010, 22h58
  2. convertir une variable javascript en variable jsp
    Par kaisser dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 08/04/2010, 08h36
  3. [XL-2003] Garder en mémoire un nombre variable de données
    Par neiluj26 dans le forum Macros et VBA Excel
    Réponses: 28
    Dernier message: 16/07/2009, 10h23
  4. Réponses: 8
    Dernier message: 20/10/2008, 11h32
  5. Procédure avec un nombre variable d'arguments
    Par charly dans le forum Langage
    Réponses: 15
    Dernier message: 21/06/2002, 11h08

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