Bonjour à tous,
Je suis en train de réaliser un travail pour l'école. Il s'agit d'un site web de vente en ligne. Je travaille à l'ajout d'articles au panier. J'utilise des Servlet et la biblitothèque JSTL Core (fichiers JSP).
Sur mon site, une page web liste les articles en vente. Pour chacun d'eux, à côté de leur nom, il y a un "textbox" pour encoder la quantité souhaitée et une image "Ajouter au panier" qui ajouter l'article au panier quand on clique dessus.
Comment obtenir dans ma servlet "AjouterPanier" ces deux paramètres: la valeur présente dans le textbox associé à l'id de l'article? Si j'utilise <form Action=post>, je parviens bien à récupérer ce qu'il y a dans mon textbox, mais impossible de déterminer quelle image (et donc quel Id D'article) a été cliquée (à moins que vous ayez une idée).
Si j'utilise un lien associé à l'image, je peux alors y ajouter comme paramètre l'identifiant de l'id d'Article, mais je ne parviens pas à y associer ce qu'il y a dans le textbox.
J'ai retourné la situation dans tous les sens mais je ne parviens à rien (j'ai aussi tenté du javascript mais je tourne toujours en rond).
Quelle serait, selon vous, la solution à mon problème?
Bonne journée,
--
Jean-François
Voici le code de la page JSP:
Code jsp : 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 <%@ page pageEncoding="UTF-8" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form" %> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Sélection de nos processeurs</title> <link type="text/css" rel="stylesheet" href="<c:url value="style.css"/>" /> <script type="text/javascript" src="jquery-1.9.1.js"></script> <script type="text/javascript" src="webApplication.js"></script> </head> <body> <div id="corps"> <c:choose> <%-- Si aucun client n'existe en session, affichage d'un message par défaut. --%> <c:when test="${ empty sessionScope.processeurs }"> <p class="erreur">Aucun processeur.</p> </c:when> <%-- Sinon, affichage du tableau. --%> <c:otherwise> <table> <tr> <th>Constructeur</th> <th>Nom</th> <th>Fréquence</th> <th>Nombre de coeurs</th> <th>Prix</th> <th>Prix promo</th> <th class="action">Action</th> </tr> <%-- Parcours de la Map des clients en session, et utilisation de l'objet varStatus. --%> <c:forEach items="${ sessionScope.processeurs }" var="mapProcesseurs" varStatus="boucle"> <%-- Simple test de parité sur l'index de parcours, pour alterner la couleur de fond de chaque ligne du tableau. --%> <tr class="${boucle.index % 2 == 0 ? 'pair' : 'impair'}"> <%-- Affichage des propriétés du bean Client, qui est stocké en tant que valeur de l'entrée courante de la map --%> <td><c:out value="${ mapProcesseurs.value.getConstructeur() }"/></td> <td><c:out value="${ mapProcesseurs.value.getNom() }"/></td> <td><c:out value="${ mapProcesseurs.value.getFréquence() }"/></td> <td><c:out value="${ mapProcesseurs.value.getNombreCoeurs() }"/></td> <td><c:out value="${ mapProcesseurs.value.getPrix() }"/></td> <td><c:out value="${ mapProcesseurs.value.getPromo() }"/></td> <td> <input type="text" id="<c:out value="textBoxQuantité"/>" name="<c:out value="textBoxQuantité"/>"> </td> <%-- Lien vers la servlet d'ajout au panier, avec passage de l'id de l'article choisi- c'est-à-dire la clé de la Map - en paramètre grâce à la balise <c:param/>. --%> <td class="action"> <a href="<c:url value="/AjouterPanier"><c:param name="nomClient" value="${ mapProcesseurs.key }" /></c:url>"> <img src="<c:url value="/inc/ajouterPanier.png"/>" alt="Ajouter au panier" /> </a> </td> </tr> </c:forEach> </table> </c:otherwise> </c:choose> </div> </body> </html>
Partager