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

JavaScript Discussion :

Changer contenu d'un onclick


Sujet :

JavaScript

  1. #1
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 815
    Billets dans le blog
    14
    Par défaut Changer contenu d'un onclick
    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 ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 815
    Billets dans le blog
    14
    Par défaut
    Je me suis peut-être mal exprimé :

    Comment créer une boîte de dialogue de confirmation traduisible en plusieurs langues et avec paramètres pour l'action confirmée ?

    Si vous ne comprenez pas la question, voir le grand message au dessus !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 92
    Par défaut
    Hello Phil,

    Ton code semble correct! J'ai essayé avec le code ci-dessous et ça fonctionne, si jamais.

    Code html : 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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    <!DOCTYPE HTML><html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Document sans nom</title>
    </head>
    <style type="text/css">
    #popupDeleteMsg{
            width: 200px;
            margin: 0 auto;
            background-color: #eee;
            border-radius: 3px;
            box-shadow: 1px 1px 3px #999;
            font-family: "lucida grande", tahoma, verdana, arial, sans-serif;/*     overflow-x: hidden; */
    }
    .popupFancyBox{
            display:none;
    }
    .show{
            display:block !important;
    }
    </style>
    <body>
    <a id="delete1"
    class="souligneSurvol"
    onclick="popupDeleteMessage(1,'alpha');"
    >Delete</a>
    <br><br>
    <a id="delete2"
    class="souligneSurvol"
    onclick="popupDeleteMessage(2,'beta');"
    >Delete</a>
    <br><br>
     
    <a id="delete3"
    class="souligneSurvol"
    onclick="popupDeleteMessage(3,'gamma');"
    >Delete</a>
    <br><br>
     
    <a id="delete4"
    class="souligneSurvol"
    onclick="popupDeleteMessage(4,'delta');"
    >Delete</a>
     
    <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">
    			DELETE ?
    			</div>
    			<div class="popupMessageDiv">
    				<input type="button" 
    					id="buttonYes"
    					value="OUI"
                        onclick="alert('empty link')";
    					 />
    				<input type="button"
    					id="buttonNo"
    					value="NON"
    					onclick="javascript:closeFB('popupDeleteMsg');" />
    			</div><!-- Fin popupMessageDiv -->
    		</form>
    	</div><!-- Fin popupForm -->
    </div><!-- Fin popupDeleteMsg -->
     
     
    <script type="text/javascript">
    function popupDeleteMessage(idMessage, idJ){
            document.getElementById("popupDeleteMsg").className = 'show';
            document.getElementById("buttonYes").onclick = function(){
                    lancerSuppressionMessage(idMessage, idJ);
            }
    }
    function closeFB(fancy){
            document.getElementById("popupDeleteMsg").className = 'popupFancyBox'}
    function lancerSuppressionMessage(idm, idj){
            alert(idm);
    }
    </script>
    </body>
    </html>

Discussions similaires

  1. menu a onglet: changer contenu d'une page php
    Par poupouille dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/04/2008, 09h32
  2. [POO] Changer contenu swf au clic
    Par FLoww dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/01/2008, 19h51
  3. [Struts] Changer bgcolor avec un onclick()
    Par R1pToR dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 19/07/2007, 14h18
  4. [javascript] Changer la valeur de onclick()
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 01/12/2005, 10h29
  5. Changer contenu d'une fenetre parente
    Par ouam81 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/07/2005, 11h12

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