Bonjour,

Soit une page qui affiche plusieurs messages avec, pour chacun d'eux, un lien permettant de supprimer le message via une fancybox qui demande confirmation de la suppression.

Par exemple, il y a dans l'ordre les messages numéros 40, 39, 23, 5 avec en regard de chaque message un lien supprimer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<a id="delete<?php echo $id_msg; ?>"
							class="souligneSurvol" 
							onclick="popupDeleteMessage(<?php echo $id_msg; ?>,'<?php echo $_SESSION['coords']['id']; ?>');"
						>
							<?php echo $trad_delete; ?>
						</a>
Le lien ne fait qu'afficher la fancybox en lui passant 2 paramètres.

La fancybox est définie une seule fois dans le code phtml et contient le message de confirmation et les boutons oui et non, le tout traduit dans la langue choisie par l'utilisateur.

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
<div id="popupDeleteMsg" class="popupFancyBox">
	<span class="popupTitle"><?php echo $trad_Delete_message; ?></span>
	<div class="popupForm">
		<form id="form_suppression"
			name="form_suppression"
			action=""
			method="post"
		>
			<div id="deleteMsgConfirm">
				<?php echo $trad_q_delete_confirm; ?>
			</div>
			<div class="popupMessageDiv">
				<input type="button" 
					id="buttonYes"
					value="<?php echo $trad_YES; ?>"
					onclick="lancerSuppressionMessage(<?php echo $id_msg; ?>, <?php echo $_SESSION['coords']["id"]; ?>)"
				/>
				<input type="button"
					id="buttonNo"
					value="<?php echo $trad_NO; ?>"
					onclick="javascript:$.fancybox.close();"
				/>
			</div><!-- Fin popupMessageDiv -->
		</form>
	</div><!-- Fin popupForm -->
</div><!-- Fin popupDeleteMsg -->
Le problème est que les paramètres passés via onclick du bouton oui à la fonction lancerSuppressionMessage doivent être ceux du message que l'utilisateur veut supprimer alors que, pour reprendre l'exemple de ma liste de message, ce sera systématiquement le dernier message (le 5) dont sera lancé la suppression.

J'ai cherché alors comment modifier en Javascript la valeur du paramètre onclick pour opérer cette modification avant l'apparition de la fancybox dans la fonction popupDeleteMessage. J'ai trouvé des discussions anciennes à ce sujet mais la méthode proposée ne fonctionne pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
function popupDeleteMessage(idMessage, idJ)
{
	document.getElementById("buttonYes").onclick = function(){lancerSuppressionMessage(idMessage, idJ);}
Qu'est-ce qui ne va pas dans mon code ou bien y a t-il une autre méthode pour faire un message de confirmation personnalisé en javascript ?