Bonjour,
j'ai une webapp Java à laquelle je souhaite ajouter quelques mécanismes "Ajax" afin de limiter les chargements de pages.
Je suis complètement débutant sur JS.
J'ai trouvé pas mal de docs qui expliquent comment récupérer des valeurs depuis des "input" notamment avec des fonctions du type document.getElementById("xyz"), mais cela suppose que cet élément soit toujours présent et porte toujours le même nom.
-> idéal dans un formulaire pour des champs tels que "nom" ou "prenom", etc.
J'ai une page qui affiche des messages d'utilisateurs. Le nombre de messages à afficher est variable et chaque message possède un identifiant.
Je souhaite ajouter à chaque message 2 images-boutons genre "like / dislike". En fonction de l'image cliquée, je déclencherai le mécanisme qui va modifier le compteur de mon objet et persister cette info en base avant de mettre à jour l'affichage sur la page et ce sans reload de celle-ci.
Ma question est donc de savoir comment faire en sorte qu'un event onclick récupère l'id d'un message et dans quel attribut de l'image stocker cet id, sachant que ma fonction devra également récupérer l'id de l'utilisateur qui a cliqué.
Actuellement, mon code Java transfère à ma JSP une Map sur laquelle je boucle pour afficher l'ensemble des messages.
Pour chaque message, j'ajoute dynamiquement 2 images (like / dislike).
Je ne peux pas stocker l'id du message dans les attributs "id" ou "name" de l'image, mais je ne vois pas trop où la stocker ailleurs.
D'autre part, la fonction appelée par le "onclick=maFonction()" doit faire la différence entre un "like" et un "dislike". Ici non plus je ne comprends pas comment et où stocker cette info si le "document.getElementById()" se base sur un nom de contrôle invariable.
Pour chaque post affiché, j'ajoute ces images :
Le code ci-dessus ne contient plus ni "id", ni "name", ni "value", j'ai tout supprimé au fur et à mesure d'essais infructueux... ceci dit je ne sais pas vraiment où stocker mes 2 infos importantes que sont :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <input type="image" src="img/heart-plus.png" onclick="alertForKeyValue();"> <input type="image" src="img/heart-remove.png" onclick="alertForKeyValue();">
1) l'id du message : ${post.key.messageId}
2) le choix "like" ou "dislike"
L'id de l'utilisateur étant dans la Session, je n'aurais pas de pb pour le récupérer.
Côté JS, je n'ai rien ou presque, je cherche pour l'instant à simplement afficher dans une boîte de dialogue du type "alert()" le choix effectué, mais celle-ci ne renvoie strictement rien jusqu'à présent.
Qq1 pourrait-il m'indiquer le minimum vital pour démarrer svp ? Je tourne en rond depuis plus d'une journée sur cette broutille...
Merci d'avance.
Partager