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 :

id des input contenu dans un tableau dynamique


Sujet :

Servlets/JSP Java

  1. #1
    Invité
    Invité(e)
    Par défaut id des input contenu dans un tableau dynamique
    Salut..
    dans ma page jsp, je récupère des objets stocker dans la base de données, les objets peuvent être ajouter ou supprimer par les utilisateurs..
    chaqu'un de mes objets est caractérisé par trois champs, que j'aimerais pouvoir afficher et donner au utilisateurs le choix de pouvoir les changer..
    voici mon tableau :

    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
    <table>
        <tr>
            <th rowspan="2">Equipement</th>
            <th colspan="3">PREVU</th>
        </tr>
        <tr>
            <th>MTBF</th>
            <th>MTTR</th>
            <th>Dispo</th>
        </tr>
        <c:forEach items="${ draS.findAll() }" var="draglines"  varStatus="boucle1">
            <tr>
                <th><c:out value="${draglines.reference}" /></th>
                <th><input type="text" id="x1" name="x1"    value="<c:out value="${dras.findById(draglines.idEquip).mtbf}"/>"size="10"maxlength="10" /></th>
                <th><input type="text" id="x2" name="x2"    value="<c:out value="${dras.findById(draglines.idEquip).mttr}"/>"size="10" maxlength="10" /></th>
                <th><input type="text" id="x3" name="x3"    value="<c:out value="${dras.findById(draglines.idEquip).dispo}"/>"size="10" maxlength="10" /></th>
            </tr>
        </c:forEach>
    </table>
    le problème qui se pose et comment donner a chaque input un id différent pour chaque objet lister .. et comment récupérer ces id dans la servlet qui va s’en charger de mettre a jour les objets dans la base de données ( plus précisément comment donner a chaque input un id unique , et comment récupéré les id de chaque input dans la servlet)

    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
    En pratique, tu n'en aurais pas besoin si la liste que tu affiches était stockée en session.
    Dans la page jsp, tu utilises juste l'attribut "name", dans ton cas, le plus facile à comprendre serait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <tr>
       <th><c:out value="${draglines.reference}" /></th>
       <th>
          <input type="text" name="mtbf"    value="<c:out value="${dras.findById(draglines.idEquip).mtbf}"/>"size="10"maxlength="10" />
       </th>             
       <th>
          <input type="text" name="mttr"    value="<c:out value="${dras.findById(draglines.idEquip).mttr}"/>"size="10" maxlength="10" />
       </th>
       <th>
          <input type="text" name="dispo"    value="<c:out value="${dras.findById(draglines.idEquip).dispo}"/>"size="10" maxlength="10" />
       </th>         
    </tr>
    Côté servlet,il faut utiliser request.getParameterValues("mtbf");
    qui te renvoit un tableau correspondant à chaque occurrence du champ dans la page (idem pour les 2 autres champs)
    Ensuite, c'est simple, l'indice 0 du tableau correspond à l'indice 0 de ta liste,
    il suffit de positionner la nouvelle valeur dans la liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    String[] mtbfs = request.getParametersValues("mtbf");
    for (int i = 0; i < mtbfs.length; i++)
    {
       laListeSource.get(i).setMtbf(mtbfs[i]);
    }
    Bref, c'est une autre façon de faire...
    Dans ton cas, si tu tiens absolument à différencier les noms, tu peux récupérer l'occurrence de la boucle forEach comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <c:forEach ... varStatus="status">
    ...
       <input type="text" name="x1${status.index} ... />
    ...
    </c:forEach>
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci..
    j'ai utilisé la première méthode avec quelques modifications..

    si vous permettez ..je partagerez votre solution sur un autre site
    merci encore

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/08/2012, 17h10
  2. Style des input contenu dans un Fieldset
    Par crazyyann dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 17/05/2011, 08h35
  3. Réponses: 3
    Dernier message: 26/10/2010, 22h14
  4. Manipulation des valeurs contenues dans un tableau
    Par khasanouray dans le forum Langage
    Réponses: 3
    Dernier message: 29/05/2007, 20h36
  5. [TP] Afficher des chaînes contenues dans un tableau
    Par mah00 dans le forum Turbo Pascal
    Réponses: 8
    Dernier message: 20/05/2007, 09h15

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